use warnings; use strict; use Data::Dumper; my @actionData; while (my $line = ) { if ( $line =~ /action\(([^)]+)\)/ ) { my @nums = grep { $_ != 0 } split /,/, $1; push @actionData, @nums; } } print Dumper(\@actionData); __DATA__ [AHB_REPORTER][INFO]: action(62,1,0,0,0,0,5,53,9,0,190)D:/XYZ/reg/Tests/Mcu/A_test.cCALL: (null) #### $VAR1 = [ 62, 1, 5, 53, 9, 190 ];