use Tie::Array; tie my @array_t, 'Tie::StdArray'; my @array = @array_t = qw[aaa bbb ccc ddd eee]; print "plain smatch: " . (/a/ ~~ @array) . "\n"; print "plain grep: " . (grep {/a/} @array) . "\n"; print "tied smatch: " . (/a/ ~~ @array_t) . "\n"; print "tied grep: " . (grep {/a/} @array_t) . "\n"; #### Use of uninitialized value in pattern match (m//) at bugs.t line 6. Use of uninitialized value in pattern match (m//) at bugs.t line 6. Use of uninitialized value in pattern match (m//) at bugs.t line 6. Use of uninitialized value in pattern match (m//) at bugs.t line 6. Use of uninitialized value in pattern match (m//) at bugs.t line 6. plain smatch: 1 plain grep: 1 tied smatch: tied grep: 1