dissident has asked for the wisdom of the Perl Monks concerning the following question:
Hello Monks, I got stuck with a "Can't use an undefined value as an ARRAY reference at ..." error when trying to push a struct using MooX::Struct onto an array. Please apologize I am still a novice monk and I don't understand why this error happens. I probably did some smaller or larger mistake, but have no clue what could be wrong. :(
Here a stripped-down piece of code. It fails at the line with the push.
use strict; use warnings; use diagnostics; use 5.014; # so push/pop/etc work on scalars (experimental) use MooX::Struct -rw, Dirnode => [ qw( $dirname @subdlist ) ]; my $dirroot = crawldir( "."); sub crawldir { my $curpath = shift; my $dno = Dirnode[]; $dno->dirname( $curpath ); opendir(DIR, $curpath); my @files = readdir(DIR); closedir(DIR); print "crawldir in directory ", $dno->dirname, "\n"; foreach (@files) { next if $_ eq '.' or $_ eq '..'; my $file_path = "$curpath/$_"; $file_path =~ s|/+|/|g; if (-d $file_path) { print "crawldir in directory ", $dno->dirname, ": calling c +rawldir( $curpath\/$_)\n"; push @{$dno->subdlist}, crawldir( "$curpath\/$_" ); } } return $dno; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Novice problem: How to push a MooX Struct into a list?
by boftx (Deacon) on Oct 31, 2014 at 21:52 UTC | |
by dissident (Beadle) on Oct 31, 2014 at 22:05 UTC | |
by Loops (Curate) on Oct 31, 2014 at 22:31 UTC | |
by boftx (Deacon) on Oct 31, 2014 at 22:43 UTC | |
by boftx (Deacon) on Oct 31, 2014 at 22:27 UTC | |
by dissident (Beadle) on Oct 31, 2014 at 23:29 UTC | |
by Loops (Curate) on Nov 01, 2014 at 00:06 UTC | |
by boftx (Deacon) on Oct 31, 2014 at 23:43 UTC | |
|