use DynScalar; my $filter = "user (.*) has (logged on)"; my $output_string = dynamic { "user $1 has accessed the system and is $2\n" }; my $log_string = "user bob has logged on"; if ($log_string =~ /$filter/) { print $output_string; }