The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/usr/bin/perl
# Copyright (c) 2025 Löwenfelsen UG (haftungsbeschränkt)
# Copyright (c) 2025 Philipp Schafft
# licensed under Artistic License 2.0 (see LICENSE file)
use strict;
use v5.16;
# Create extractor object
my $extractor = Data::URIID->new(
# Enable online lookups for friendly services
services_online => '@friendly',
# Enable online operation
online => 1,
);
# Loop over all arguments
outer:
foreach my $req (@ARGV) {
my $result = $extractor->lookup($req);
# Foreach service, however the original service first
# (it will in fact be used twice, but it's unlikely that this may have any effect)
foreach my $service ($result->attribute('service'), $extractor->known('service')) {
# Loop over our actions in order of preferences.
foreach my $action (qw(file-fetch stream-fetch fetch)) {
if (defined(my $url = $result->url(service => $service, action => $action, default => undef))) {
# If we found a URL print it and go to the next link
say $url;
next outer;
}
}
}
}
#ll