in reply to Re: Passing Arrays to Subroutines
in thread Passing Arrays to Subroutines

Thanks for your help. I copied part of the code from a book which wasn't too clear on whether the array items would be split on whitespace or be lines. I see now that they are lines. What you have suggested is pretty much what I had in mind. I take your point about variable names, I guess I wasn't being very imaginative :-). Cheers S.

Replies are listed 'Best First'.
3Re: Passing Arrays to Subroutines
by jeffa (Bishop) on Nov 26, 2003 at 18:40 UTC
    If you are developing generic subroutines, then the names inside your subroutines aren't bad, but the fact that you hard code the name of the file is. If you pass the in the name of the file as an argument to the sub, then you will have some reusable subroutines:
    sub file_to_list { my $name = shift or die "must have name to read"; open (FILE, '<', $name) or die "can't read from $name: $!"; chomp(my @data = <FILE>); return @data; } sub list_to_file { my $name = shift or die "must have name to write"; open (FILE, '>', $name) or die "can't write to $name: $!"; print FILE "$_\n" for @_; } my @foo = file_to_list('file.in'); print "$_\n" for @foo; list_to_file('file.out',@foo);

    jeffa

    L-LL-L--L-LL-L--L-LL-L--
    -R--R-RR-R--R-RR-R--R-RR
    B--B--B--B--B--B--B--B--
    H---H---H---H---H---H---
    (the triplet paradiddle with high-hat)