#!?usr/bin/perl
use PadWalker qw(peek_my peek_our);
use warnings;
use strict;
sub ruby_quote($) {
my ($string) = @_;
my %hash = (%{peek_our(1)},%{peek_my(1)});
$string =~ s!(\#\{ (.*?) \})!${$hash{$2}||\$1}!xg;
#XXX: LexAlias is required to make it work properly
$string =~ s!\#\{ (.*?) \}!eval($1)!exg;
return $string;
}
my $lang = "Perl";
our $lang2 = "Ruby";
print ruby_quote '$vars are sometimes used both in #{$lang} and in #{$lang2}, but #{1+1} is a sigil in neither
';