Could somebody explain why the following code prints "barbar" rather than "bar" please? I am trying to understand why the $result variable in the search function retains its value the second time the function is called.
Up until now I had thought that variables in a function defined with "my" would be empty each time the function was called, so this has caught me out. The code is just proof of concept: I realise that it could be written more efficiently! sub search($) { my $in = shift; my $result = "FOO" if $in =~ /foo/; $result = $1 if ($in =~ /^(bar)/); return $result; } print search("bar"); print search("none"); Thanks, Andy