I have a subroutine that chokes on returning what I want. I make the call:
my $tmp = My::Module->new( search_directory => '/some/directory' , archive_directory => + '/some/archive' ); $tmp->My::Module::find_files;
The core of my module is this:
sub new { my($class, %args) = @_; my $self = bless( {} , $class ); my $search_directory = exists $args{search_directory} +? $args{search_directory} : '.'; $self->{search_directory} = $search_directory; my $archive_directory = exists $args{archive_directory} +? $args{archive_directory} : ''; $self->{archive_directory} = $archive_directory; my @found_files = exists $args{found_files} ? $arg +s{found_files} : []; $self->{found_files} = @found_files; return $self; } sub find_files { my $self = shift; find( \&FINDFILES , $self->{search_directory} ); sub FINDFILES { #SITE_TYPE_YY[YY]_MO[_HRMN|_HRMNSC]?.[xx|xxx] + + if ($_ =~ m/^(\w{3}|\w{4})[_](\w{4})[_](\d{4}|\d{2})[_](\d{2})[_]( +\d{2})[_]?(\d{2})?(\d{2})?(\d{2})?[.]?(\w{3}|\w{4})?/i) { push @{$self->{found_files}}, $File::Find::name; } } }
I expect to return an array of files in $tmp->{found_files} ... but I get the following:

Can't use string ("1") as an ARRAY ref while "strict refs" in use at /opt/local/lib/perl5/site_perl/5.12.3/My/Module.pm line 94.


In reply to Push from filefind into structure by dpath2o

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.