The use strict pragma is a great tool, particularly if you are just learning. It catches a lot of silly errors. Similarly for use warnings. See Use strict warnings and diagnostics or die for a discussion why.
Rather than two-argument open w/ bareword filehandle, it's probably a better idea to use three-argument open with an indirect handles. See perlopentut for lots of gory detail. You should also check if the open actually succeeded with an or die clause. In this case, your opens might look like:
open($Definedlist, '<', $name) or die "Open failed on $name: $!"; + # opens the file and places the contents into Namelist open($BigNamelist, '<', $newName) or die "Open failed on $name: $!"; + # opens the second file and places the contents into Newlist
Your close statements are being run against non-existent filehandles. Using indirect filehandles with strict would have caught this error. Also, you don't usually need to close indirect filehandles since the close automatically when they go out of scope.
There is no Perl egrep built-in (function? method? sub? I'm never sure what to call things). There is a grep. This particular task is also a FAQ. See How can I tell whether a certain element is contained in a list or array?
You should probably pick up an into text to help you get started. You can't beat the price of Beginning Perl, though it's pretty out of date. See a whole list of books at http://learn.perl.org/books/. Anonymous Monk's suggestion of reading perlintro is also a good idea.
HTH.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.
In reply to Re: Help from the Perliest monks
by kennethk
in thread Help from the Perliest monks
by perlmonknoob
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |