$main->bind("", \&Open); #### sub Open { my $csv_path = $main->getOpenFile( -filetypes => [ [ 'CSV files', '.csv' ], [ 'All Files', '*' ], ] ); return if not defined $csv_path; open my $csv_fh, '<', $csv_path or die "Cannot open '$csv_path': $!"; my $out_fh; my $last_filename = ''; while (<$csv_fh>) { my ($f) = /^([^,]+),/; my $filename = "$f.txt"; if ( $filename ne $last_filename ) { open $out_fh, '>', $filename or die "cannot open $filename: $!"; } print {$out_fh} $_; $last_filename = $filename; } }