my $posn = -1; my $same = 1; while(defined $same){ die if $posn > length $files[0]; my $chr = substr($files[0], ++$posn, 1); for my $name (1..$#files) { undef $same and last if(substr($files[$name], $posn, 1) ne $chr or length $files[$name] < $posn); } } print 'Prefix is "', substr($files[0], 0, $posn), '"';