in reply to need to put values (from unpack) into array-ref

It would be a lot easier to help if you told us what you were trying to achieve instead of just giving us non-working code and expecting us to work it out for ourselves.

Also, adding use strict and use warnings to your code will help Perl to help you find the problems.

I'm guessing, but is this something like what you wanted?

#! /usr/bin/perl use strict; use warnings; my @a; my $b = "abefcdghijklmn" ; $a[0]->[0] = "start 0" ; $a[1]->[0] = "start 1" ; for(my $i = 0; $i < 14; $i += 2) { my ($foo, $bar) = unpack("x$i A1 A1", $b) ; push @{$a[0]}, $foo; push @{$a[1]}, $bar; } foreach ( @{$a[0]} ) { print "$_\n" ; }

If that is what you want, then it's probably more maintainable if it's written something like this:

#! /usr/bin/perl use strict; use warnings; my @a; my $b = "abefcdghijklmn" ; $a[0]->[0] = "start 0" ; $a[1]->[0] = "start 1" ; my @chars = split //, $b; while (@chars) { push @{$a[0]}, shift @chars; push @{$a[1]}, shift @chars; } foreach ( @{$a[0]} ) { print "$_\n" ; }
--
<http://dave.org.uk>

"The first rule of Perl club is you do not talk about Perl club."
-- Chip Salzenberg

Replies are listed 'Best First'.
Re^2: need to put values (from unpack) into array-ref
by jeanluca (Deacon) on Mar 28, 2006 at 10:32 UTC
    yes, thats what I need (sorry for my short explanation).
    Is there no way to insert these values directly into those array refs with push or something else ?
      Is there no way to insert these values directly into those array refs with push or something else?

      Well, you could directly assign each value to the next element off the end of each array with code like this:

      ($a[0][@{$a[0]}], $a[1][@{$a[1]}]) = unpack("x$i A1 A1", $b) ;

      But that's horrible!

      --
      <http://dave.org.uk>

      "The first rule of Perl club is you do not talk about Perl club."
      -- Chip Salzenberg