What do you use that eval for? Only for eliminating the parentheses? Bad idea, I think.
Let's assume there is a list of strings from which the value of the second last field is wanted.
If there is a bad data source, that eval would execute bad stuff like system("echo Hello World.") or even worse...
$ perl
use feature ":5.14";
use warnings FATAL => qw(all);
use strict;
my $var = << 'END';
11,2222222,"xxxxxx'x xxxxxxx, xxxxxxxxx",sssss (aaa 111) 1111-a ,aaaaa
+aa aa ,aaaaaa, ,xxxxxxxx,dd/dd/dd,xx, system('echo bad command execut
+ed!!'),111111
END
say eval [split /,\s*/, $var]->[-2]
bad command executed!!
0
If you want to remove the parentheses, you could use an tr///. For example:
use feature ":5.14";
use warnings FATAL => qw(all);
use strict;
my $var = << 'END';
11,2222222,"xxxxxx'x xxxxxxx, xxxxxxxxx",sssss (aaa 111) 1111-a ,aaaaa
+aa aa
,aaaaaa, ,xxxxxxxx,dd/dd/dd,xx, (195.14) ,111111
END
my $interest = split /,\s*/, $var)[-2];
$interest =~ tr/0-9.//cd;
say $interest;
|