in reply to How can I use $1 in an assigned string

There are more robust ways to do this, but this does what you want.

I changed your filter pattern a bit to make it more robust.
#!/usr/local/bin/perl use strict; my $filter = q{user ([^\s]+) has ([^\n\r]+)$}; my $log_string = "user bob has logged on"; $log_string =~ s/$filter/user $1 has accessed the system and is $2/; print qq{LINE: [$log_string]\n};

Outputs
:!./t2.pl LINE: [user bob has accessed the system and is logged on]
Wonko