use strict; use warnings; use Data::Dumper; my $str = 'PokerStars Hand #196201736872: Hold\'em No Limit (50/100) - 2019/01/25 11:06:25 ET'; my $regex = 'PokerStars Hand #(\d+?): (.*?) (.*?) \(\$?(\d+\.?\d*)\/\$?(\d+\.?\d*)(.*?)\) - (\d+?)\/(\d+?)\/(\d+?) (\d+?)\:(\d+?)\:(\d+?) (.*)'; if ($str =~ $regex) { print "MATCHED\n"; } else { print "NO MATCH\n"; } my @matches = $str =~ $regex; print Dumper \@matches; my $user = 'pkrstarsbot'; my $user2 = 'www-data'; my ($login,$pass,$uid,$gid) = getpwnam($user) or die "$user not in passwd file"; my ($login2,$pass2,$uid2,$gid2) = getpwnam($user2) or die "$user2 not in passwd file"; print "$login\n$pass\n$uid\n$gid\n"; my $cnt = chown $uid, $gid, '/home/pkrstarsbot/upload/1/HH20190125 Immo II - 50-100 - Play Money No Limit Hold\'em.txt' or die "$!"; print "$cnt\n"; unlink('/home/pkrstarsbot/upload/1/HH20190125 Immo II - 50-100 - Play Money No Limit Hold\'em.txt') or warn "$!";