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; }