in reply to Use of uninitialized value in tie array

Maybe the file is empty?

Have you inspected how many elements there are in @array?

On further inspection of your source code, the variable $dir_txt_files is named in a way that suggests that it is not a filename. This is furthered by you assigning it the value stuff/. But Tie::File wants a filename, not something else.

Maybe you want to use glob or File::Find to find files?

Replies are listed 'Best First'.
Re^2: Use of uninitialized value in tie array
by Anonymous Monk on Apr 01, 2016 at 13:48 UTC
    Its a file name. Yes, the file could be empty and thats where the issue occurs. Trying to figure it out a way to prevent it and how is the question.

      scalar @array gives you the number of elements in an array. if( @array ){ will also only be true if the array contains at least one element.

        You are saying something like this:
        ... my $dir_txt_files = "stuff/"; tie my @array, 'Tie::File', $dir_text_files or die "Could not open fil +e '$dir_text_files' $!"; if(@array) { unshift @array, 'NAME, ADDRESS, ZIPCODE' unless $array[0] =~ /^[a-z +A-Z]/; # Remove any blank lines. @array = grep /\S/, @array; } untie @array; ....

        Thanks!