#!/usr/bin/perl use strict; use warnings; use HTML::Entities qw( decode_entities ); my $EncodedDate = "Tue Sep 13, 2005  10:38 pm"; my $MixedDate = $EncodedDate . "\n------\n" . decode_entities($EncodedDate); # $nbsp will contain the decoded version of   decode_entities(my $nbsp = ' '); # Now, substitute all flavours of non-breakable-spaces $MixedDate =~ s/ |$nbsp/ /g; # Same split as before my @date = split /\s+/, $MixedDate; print "$_ $date[$_]\n" foreach 0 .. $#date; __END__ 0 Tue 1 Sep 2 13, 3 2005 4 10:38 5 pm 6 ------ 7 Tue 8 Sep 9 13, 10 2005 11 10:38 12 pm