in reply to Re^2: Deleting undefined entries from DB_FILE hash
in thread Deleting undefined entries from DB_FILE hash

If then you suspect split function, then check what you are getting for each split "action" ( using print ), before assigning them to other variables. like so:

print join "\n",split /\t/, $hash{$key}, 7;
See if you have 7 seperate values. If not, then one can say try "\s+" in the split function, instead of the "\t" like so:
print join "\n",split /\s+/, $hash{$key}, 7;
If that works, then :-)! You got it!!!

Replies are listed 'Best First'.
Re^4: Deleting undefined entries from DB_FILE hash
by gossamer (Sexton) on Jul 23, 2012 at 13:07 UTC

    I've added the following:

    print "\n------------\n"; print join "\n",split /\t/, $hash{$key}, 7;

    This has produced the following output:

    ------------ spam 20120625T115711 14359 Time Attendance Software <rasputin@gustyhelp.info> drape@gustyhelp.info Track employee time and attendance 11.034 ------------ spam 20120627T054428 119032 "CriminalJustice Education" <CollegePrograms@birdddeals.com> CollegePrograms@birdddeals.com Succeed in a Criminal Justice program

    ========

    It may not be clear from the second example, but it only has six fields, where the seventh is blank. It is that condition I'm trying to manage with split and keep it from choking.

    It looks like the last value is null, which must be the type of thing that's choking the split from my example.

    When the database was written, it appears undef'd values were used in some fields where there was no data available.

    Is there another way to split the tab-delimited line other than split() that won't choke?