in reply to unpack(pack(join simplification

don't know if this is simpler or less ugly, but...

C:\@Work\Perl>perl -we "print oct do { local $\" = ''; qq(0b@ARGV) }" 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2147483648 C:\@Work\Perl>perl -we "print oct do { local $\" = ''; qq(0b@ARGV) }" 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2147483647 C:\@Work\Perl>perl -we "print oct do { local $\" = ''; qq(0b@ARGV) }" 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2147483649 C:\@Work\Perl>perl -we "print oct do { local $\" = ''; qq(0b@ARGV) }" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 C:\@Work\Perl>perl -we "print oct do { local $\" = ''; qq(0b@ARGV) }" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Replies are listed 'Best First'.
Re^2: unpack(pack(join simplification
by Util (Priest) on Jul 04, 2007 at 15:53 UTC

    Good idea to use oct(), but $" is deprecated; use join() instead.

    sub binary_array_to_uint { my $bin = join '', @_; return oct "0b$bin"; }
    perl -wlane 'print oct( "0b" . join( "", @F ) );' <<END 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 END
    Output: 2147483648 2147483647 2147483649 1 0

      Good idea to use oct(), but $" is deprecated; use join() instead.

      Fully agreeing on the use of join (in this case) instead of $", but how is the latter deprecated?