perl -e 'while (my $var = <STDIN>) {$run = "awk -f work_5messages.awk ".$var; `$run`;}'
Apart that you don't need to create a temporary variable like that, and I don't see any particular advantage in doing so, any good reason to use backticks in void context?!? If you really want to stay minimal,
chomp, system "awk -f work_5messages.awk $_" while <STDIN>;
or (better)
chomp, system qw/awk -f work_5messages.awk/, $_ while <STDIN>;
But even better is to handle possible errors... |