substr $string, 0, 30; # will extract UP TO the first 30 characters of the string. $string =~ m/(.{30})/; # will extract the first 30 characters, if the string is AT LEAST 30 characters long $string =~ m/.{30}/; # tests if the string is AT LEAST 30 characters long length($string) == 30; # tests if the string is 30 characters long. #### my @strings = ( join ('', 'a' .. 'z' ), join ('', 'a' .. 'z', 0 .. 3 ), join ('', 'a' .. 'z', 0 .. 9 ), ); foreach my $string (@strings) { print "\nstring : $string\n"; print 'length : ', length($string), "\n"; print 'substr : ', substr( $string, 0, 30 ), "\n"; print 'regex : ', ( $string =~ m/.{30}/ ), "\n"; print 'regex : ', ( $string =~ m/(.{30})/ ), "\n"; } #### string : abcdefghijklmnopqrstuvwxyz length : 26 substr : abcdefghijklmnopqrstuvwxyz regex : regex : string : abcdefghijklmnopqrstuvwxyz0123 length : 30 substr : abcdefghijklmnopqrstuvwxyz0123 regex : 1 regex : abcdefghijklmnopqrstuvwxyz0123 string : abcdefghijklmnopqrstuvwxyz0123456789 length : 36 substr : abcdefghijklmnopqrstuvwxyz0123 regex : 1 regex : abcdefghijklmnopqrstuvwxyz0123