#!/usr/bin/perl use strict; use warnings; #### #!/usr/bin/perl use strict; use warnings; # switch one in for testing each case. # # my $statement = "File extraction sucessfully completed in 8s 180ms"; my $statement = "File extraction sucessfully completed in 3min 8s"; # my $statement = "File extraction sucessfully completed in too much time"; my @values = split(/\s+/, $statement); # split on any number/sort of whitespace my @time; $time[0] = pop @values; $time[1] = pop @values; # or use and array slice # my @time = @values[-2,-1]; my $seconds = 0; for my $val (@time) { if ($val =~ s/min$//) { $seconds = $seconds + $val * 60; } elsif ($val =~ s/ms$//) { $seconds = $seconds + $val / 1000; } elsif ($val =~ s/s$//) { $seconds = $seconds + $val; } else { print "Warning, strange value in expected time field: $val\n"; exit; } } print "Total time taken: $seconds seconds \n"