while ( <DATA> )
{
print if /\Ahttps.*[^\/]\n\z/;
}
__DATA__
http://perlmonks.org/?node_id=825405
HTTPS://gmail.com
https://gmail.com/
httpsux
https://perlmonks.org/?
https://mail.google.com/mail/#inbox
Gives these which are either completely invalid or "end" with a trailing slash since the fragment and the empty query string are irrelevant to the URI path.
httpsux
https://perlmonks.org/?
https://mail.google.com/mail/#inbox
If you know for a fact that your data set is simple/normalized enough, you could use a straightforward regular expression. URI is simple and robust however so not using it is just sloth and it will eventually bite you or the dev who inherits your code. Trusting input data to be well-formed is risky and only appropriate in one-offs.
|