use Modern::Perl; while () { chomp; do { say "Not a valid file, Check output!"; next } if /[^0-9A-F]/; do { say "All zeroes or empty, Check output!"; next } if /^0*$/; say '==', join "\n==", /(..)/g; } __DATA__ 00000FFEDFF67FFB8FF96FFE200BBFF240020FFBAFF360132FF6500FCFED30079 000000000000000000000000000000000 THIS IS NOT A HEX DUMP #### ==00 ==00 ==0F ==FE ==DF ==F6 ...(snip)... ==0F ==CF ==ED ==30 ==07 All zeroes or empty, Check output! All zeroes or empty, Check output! Not a valid file, Check output!