use warnings; use strict; use feature qw(say); # use diagnostics; # say zip ('ABCDEFGHIJ','abcde'); my $zipped= zip ('ABCDEFGHIJ','abcde'); say $zipped; sub zip { # join "", sort {qq(\L$a) cmp qq(\L$b)} split "", $_[0].$_[1]; join "", sort { lc $a cmp lc $b} split "", $_[0].$_[1]; } __END__ #### monks>zip.pl Unquoted string "zip" may clash with future reserved word at \monks\zip.pl line 6. say() on unopened filehandle zip at monks\zip.pl line 6. #### say() on unopened filehandle zip at monks\zip.pl line 6 (#1) (W unopened) An I/O operation was attempted on a filehandle that was never initialized. You need to do an open(), a sysopen(), or a socket() call, or call a constructor from the FileHandle package.