open (IN, "file1") or die("can't blah blah"); while () { print; print slurp(); } sub slurp { local *IN; my $slurp = do { local $/ = undef; open IN, "file2"; }; return $slurp; } #### open (my $in, "file1") or die("can't blah blah"); while (<$in>) { print; print slurp(); } sub slurp { my $slurp = do { local $/ = undef; open my $in, "file2"; <$in>}; return $slurp; }