|Think about Loose Coupling|
Rephrasing what ikegami said already:
the output of `unix_tool file_name` is probably _empty_.
What if you run this very command in the shell?
What if you use the full path to unix_tool inside the backticks, if unix_tool isn't in the current directory?
Maybe these questions can help you in tracking the problem down.
Update: what if you dump out $var after filling it, like
print Dumper( $var );
Altough this sounds improbable, maybe you just falled over some bug, maybe one that appears only within your environment: what Perl do you use, on what OS?