use strict; use warnings; my $tempStr = <<'STR'; sdfasdfsdfsd asdfasdfasdfasdfsdfsd ... is_raw_sql_editor = FALSE" STR open my $inFile, '<', \$tempStr; local $/ = "\n\n"; # Break input into paragraphs while (<$inFile>) { chomp; next unless length; next unless / User\s+(\w+).*? phone\s*=\s*(\w*).*? email\s*=\s*(\w*).*? misc_info\s*=\s*(.*) /xs; print "User $1, phone $2, email $3, misc_info:\n$4\n\n"; }