Re: perlrun -aF

Phil Carmody <[email protected]>
Newsgroups gmane.comp.lang.perl.golf
Message-ID <[email protected]>
--- Tor Hildrum <[email protected]> wrote:
> Hi there, I just have a little peculiarity that I am wondering about.
> 
> The following code works as expected:
> #!/usr/bin/perl
> 
> while(<>)
> {
>      @F = split('');
> 
>      print map unpack("B8",$_),@F;
> }
> 
> Test run:
> tor% ./test.pl
> abc
> 01100001011000100110001100001010*
> 
> BUT:
> tor% perl -aF'' -ne 'print map{unpack"B8",$_}@F'
> does not.
> 
> tor% perl -aF'' -ne 'print map{unpack"B8",$_}@F'
> abc
> 01100001
> 
> Doesn't autosplit or -F work as described in perlrun?

Firstly you're not passing a parameter to perl's -F. '' is 
interpreted by the shell to mean 'the empty string', so what 
follows the F is the empty string.

To pass literal quotes to the program (perl) you need to 
escape them stick them or stick them in quotes:

bash-2.05a$ perl -aF"''" -ne 'print map{unpack"B8",$_}@F'
abc
01100001011000100110001100001010

bash-2.05a$ perl -aF'""' -ne 'print map{unpack"B8",$_}@F'
abc
01100001011000100110001100001010

bash-2.05a$ perl -aF\"\" -ne 'print map{unpack"B8",$_}@F'
abc
01100001011000100110001100001010

bash-2.05a$ perl -aF\'\' -ne 'print map{unpack"B8",$_}@F'
abc
01100001011000100110001100001010



However, you also have the option of achieving the same effect 
without using quoe characters to bound the -F regexp, so none 
of the above are desirable for perl golfing.

Phil

=====
When inserting a CD, hold down shift to stop the AutoRun feature
In the Device Manager, disable the SbcpHid device.
http://www.cs.princeton.edu/~jhalderm/cd3/

__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.