use warnings; use strict; use MIME::Base64; my $base64text = encode_base64('This is some Base64 encoded text'); my $notbase64text = 'This is text is not Base64 encoded'; print is_base64($base64text) || "\nNot Base64\n"; print is_base64($notbase64text) || "\nNot Base64\n"; sub is_base64{ #Returns the decoded data on success, undef on failure my $data = shift; return(undef) unless ($data =~ /^[A-Za-z0-9+\/=]+$/); #test for valid Base64 string if (length ($data)%4==0){ print "Valid Base64\n"; my $decoded = decode_base64($data); return( $decoded ); } else { print "Invalid Base64\n"; return(undef); } }