chexmix:
What you want to do should work. But you don't show the code that's failing, so I can't tell you why it fails. But I do it often enough.
$ perl t.pl
$ cat out.txt
bob
$ cat t.pl
#!/usr/bin/perl
use strict;
use warnings;
foo("bob");
sub foo {
my $txt = shift;
open my $FH, '>', 'out.txt' or die $!;
bar($FH, $txt);
}
sub bar {
my ($FH, $msg) = @_;
baz($FH, $msg);
}
sub baz {
my ($FH, $message) = @_;
print $FH $message;
}
...roboticus
When your only tool is a hammer, all problems look like your thumb.