#!/usr/bin/perl use v5.12.2; use warnings; use strict; while (my $line = ) { if ($line =~ /(\d\d)[:;](\d\d)[:;](\d\d)/){ my $hours = $1; my $minutes = $2; my $seconds = $3; print "$hours,$minutes,$seconds\n"; } else{ print qq{bad line: $line\n}; } } __DATA__ 01:23:45 06:54;32 23;45:16 23_45_16