I hear ya. I once worked on a project where I inherited some perl code from someone whose knowledge of arrays was limited to the following:
- Iteration: for $line ( @lines )
- Read from file: @lines = <FILE>;
- Write to file: print FILE @lines;
His code was rife with hacks like
# add the new item to the list:
open TMP, "> $tmp";
print TMP @items;
print TMP $new_item;
open TMP, "< $tmp";
@items = <TMP>;
It baffles and amazes me that someone could know how to read and write arrays to file, but not have learned about the push
Also disgusting was the fact that this person didn't know enough to put that snippet in a subroutine. He C&P'd it (and every other hack he ever devised) rampantly throughout his code.
The 6th Rule of Perl Club is -- There is no Rule #6.