From: "John W. Krahn" <[EMAIL PROTECTED]> > Jenda Krynicky wrote: > > From: "John W. Krahn" <[EMAIL PROTECTED]> > >> Rob Dixon wrote: > >>> obdulio santana wrote: > >>>> May be this helps > >>>> > >>>> perl -lne "print if ++$D{$_} == 1" address.txt > >>> You may prefer the cuteness of > >>> > >>> perl -lne "print unless $D{$_}++" address.txt > >> Or the shortness of: > >> > >> perl -ne'$D{$_}++||print' address.txt > > > > Actually this > > > > perl -n'${$_}||=print' > > > > works as well as long as the last line in the file either does end > > with a newline or doesn't match any builtin variable whose default > > value is already true. > > > > One more keystroke down. > > $ perl -c -n'$D{$_}++||print' > Unrecognized switch: -$D{$_}++||print (-h will show valid options).
Sorry, it should have been perl -ne'${$_}||=print' I'm using windows so I have to test it with doublequotes in place of the singlequotes so I must have made a mistake changing them back. From: "Chas. Owens" <[EMAIL PROTECTED]> > That is nasty. If I am reading that correctly you are using a > symbolic reference to create variables with the name of the line. > I can't > remember, does Perl have a limit on the size of a variable > name? Yes, you are reading it correctly. And since the line contains the newline it can't match any builtin. Except possibly for the last line in the file. Does it have a limit on the size of a hash key? If it does, then the limit is high enough I believe. Jenda ===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz ===== When it comes to wine, women and song, wizards are allowed to get drunk and croon as much as they like. -- Terry Pratchett in Sourcery -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/