We don't bite newbies here... much PerlMonks

### Re: Re: dimensioning arrays

by Gloom (Monk)
 on Feb 16, 2001 at 16:31 UTC ( #58843=note: print w/replies, xml ) Need Help??

in reply to Re: dimensioning arrays

@{shift} may means @{'shift'} or @shift : it's ambiguous.

be more sharp by adding "()" after shift.
```...
my \$nx = shift;
my @a = @{shift()}; # This should resolve your problem
my \$ny = shift;
...
________________________
Hope this helps

Replies are listed 'Best First'.
Re: Re: Re: dimensioning arrays
by Anonymous Monk on Feb 16, 2001 at 16:54 UTC
Thanks, Now it works.
It would be nice for me to have a general subroutine
```sub initialise(\@dimensions,\$initialisation_value,\@matrix)
that gives back an initalised matrix of n-dimensions. I'll try as learning exercise, if it is not straightforward for someone to write it down here. There's a lot to learn from a snippet of code..:)
rob
This is a solution. Not very efficient though (sorry)... but I found it interesting.

```sub ar_init {
my \$shift = shift ;
(defined \$_[0])
? [ map { ar_init(@_) } (1..\$shift) ]
: \$shift ;
}

my \$array_ref = ar_init(3, 2, 4, 'pop ');

print \$array_ref->[2][0][3]

Since lists are 'flattened' in subroutine calls, you could put the dimensions in an array @dim = (3, 2, 4) and call it using ar_init(@dim, 'foo') - it would have the same effect. Note that the whole thing is constructed using references - you'll need to understand references for whatever solution you use. I like the explanation of reference syntax in _Effective_Perl_Programming_.

Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://58843]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (2)
As of 2022-01-27 00:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
In 2022, my preferred method to securely store passwords is:

Results (70 votes). Check out past polls.

Notices?