tag:blogger.com,1999:blog-6938084522763168330.post3053669292731956004..comments2023-05-24T04:15:50.162-05:00Comments on IT Non-whizzos: My set complement Perl script.Unknownnoreply@blogger.comBlogger3125tag:blogger.com,1999:blog-6938084522763168330.post-54642605771094209092009-10-28T09:20:48.240-05:002009-10-28T09:20:48.240-05:00Thanks a lot folks. Great stuff.
I was fairly ce...Thanks a lot folks. Great stuff.<br /><br />I was fairly certain that I'd be using 'map' to shorten the code and/or speed things up, but I didn't know the exact syntax. I was going to read the details over on perldoc later. However, I would have never guessed that the _list_ argument of 'map' could be '<>'.Jefferyhttps://www.blogger.com/profile/00233184554785130203noreply@blogger.comtag:blogger.com,1999:blog-6938084522763168330.post-14654318570822446172009-10-28T05:15:05.248-05:002009-10-28T05:15:05.248-05:00or:
open F,$ARGV[0] or die "$! while open ...or: <br /><br /><br />open F,$ARGV[0] or die "$! while open $ARGV[0]"; <br />my %set = map { $_ => 1 } <>; <br />for ( <F> ) { print unless $set{$_} };<br /><br />hth<br />marcAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6938084522763168330.post-88177098269615569952009-10-28T02:27:59.471-05:002009-10-28T02:27:59.471-05:00You could do it a lot short in Perl, and probably ...You could do it a lot short in Perl, and probably shorter than my version:<br /><br />#!/usr/bin/perl -w<br />use File::Slurp 'slurp'; <br />my $set1 = shift; <br />my %set2 = map { $_ => 1 } <>; <br />print (grep { ! exists $set2{$_} } slurp($set1));Anonymousnoreply@blogger.com