in reply to Base64 Help

try this (updated):
use strict; use warnings; use Text::CSV; use MIME::Base64; my $i=0; my @columns; my @cleanData; my @input; my $file = 'data.csv'; my $csv = Text::CSV->new(); my $string; while (<DATA>) { if ($csv->parse($_)) { my @values = $csv->fields(); push @cleanData, \@values; } else { my $err = $csv->error_input; print "Failed to parse line: $err"; } } open (MYFILE, ">", "output.csv") or die $!; for my $column (@cleanData){ foreach my $value (@{$column}) { chomp $value; $value = check($value); } print MYFILE join(',', @$column), "\n"; } close MYFILE; sub check{ my $col = shift; $col = decode_base64($col) if $col =~ m{ ^ (?: [A-Za-z0-9+/]{4} )* (?: [A-Za-z0-9+/]{2} [AEIMQUYcgkosw048] = | [A-Za-z0-9+/] [AQgw] == )? $ }x; return $col; } __DATA__ A1,A2,A3,A4 B1,B2,B3,B4 1,Just some data,c29tZSBzdHJpbmc= C1,C2,C3,C4 D1,VGhpcyBpcyBkZWNvZGVkIQ==,D3,D4,GibberishdlkfjsDKjdlslksJAoiasosaSDS +D==