in reply to Bless a string
Sewi:
That's nifty:
$ cat string_obj.pl #!/usr/bin/perl use strict; use warnings; my %vars = qw(bar shizzle baz diddle foo voodoo ); print "vars: ", join(", ", map { "!$_=>'$vars{$_}'" } sort keys %vars), "\n\n"; my $template = '!foo bar !baz'; my $object = bless \$template, 'TemplateStr'; print "template='$template'\n"; my $str = $object->doit(%vars); print "str='$str'\n\n"; $template = 'foo !bar baz'; print "template='$template'\n"; $str = $object->doit(%vars); print "str='$str'\n\n"; package TemplateStr; sub doit { my ($self, %v) = @_; my $rv = $$self; for my $k (keys %v) { $rv =~ s/!$k/$v{$k}/g; } return $rv; } $ ./string_obj.pl vars: !bar=>'shizzle', !baz=>'diddle', !foo=>'voodoo' template='!foo bar !baz' str='voodoo bar diddle' template='foo !bar baz' str='foo shizzle baz'
...roboticus
When your only tool is a hammer, all problems look like your thumb.
|
|---|