use Modern::Perl; use URI::Split qw/uri_split/; my %parts; @parts{ my @keys = qw/ scheme auth path query frag / } = uri_split( 'http://www.bing.com/default.aspx' ); say "$_ => $parts{$_}" for grep { defined $parts{$_} } @keys;