my $template = "Hi %foo, I have a %bar.\n"; print fill($template, foo => 'mickey', bar => 'robot'); sub fill { my $template = shift; my %params = @_; $template =~ s/%([a-z]+)/$params{$1}/g; return $template; } #### my ($x, $y, $z); my $callback = sub { print $x, $y, $z, "\n" }; ($x, $y, $z) = (1, 2, 3); $callback->(); ($x, $y, $z) = (4, 5, 6); $callback->(); #### my $callback = sub { my ($x, $y, $z) = @_; print $x, $y, $z, "\n"; }; $callback->(1,2,3); $callback->(4,5,6);