http://www.perlmonks.org?node_id=999268


in reply to Is there a better way to get the Country names with help of Regax

Hi, You could use this

print $1, $/ if ( $location =~ m{(?<=:)(?:.-)?(.+?)$} );
even addressing the excellent point raised by tobyink
like so:
#!/usr/bin/perl use warnings; use strict; while ( defined( my $location = <DATA> ) ) { chomp $location; print $1, $/ if ( $location =~ m{(?<=:)(?:.-)?(.+?)$} ); } __DATA__ $names = Location:G-Canada $names = Location:Germany $names = Location:p-Australia $names = Location:e-Britain $names = Location:USA $names = Location:c-India $names = Location:Netherlands $names = Location:r-China $names = Location:North Korea $names = Location:Vatican City $names = Location:South Sudan $names = Location:Timor Leste $names = Location:Papua New Guinea
OUTPUT
Canada Germany Australia Britain USA India Netherlands China North Korea Vatican City South Sudan Timor Leste Papua New Guinea

If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me