#!/usr/bin/env perl
# FILENAME: fdupes.pl

use strict;
use warnings;
use Data::Dumper qw(Dumper);

while ( defined( my $source = get_next() ) ) {
    my @dests;
    for my $dest_no ( 1..2)  { 
        my $dest = get_next();
        die "Cant get destination $dest_no for " . dump_terse($source) if not defined $dest;
        push @dests, $dest;
    }
    format_it( $source, @dests );
}

sub get_next { my $item = <>; return unless $item; chomp $item; return $item }

sub format_it {
    my ( $source, @dests ) = @_;
    printf "rm -f %s ; ", join q[ ], @dests;
    printf "ln %s %s ; ", $source, $_ for @dests;
    print "\n";
}

sub dump_terse {
    local $Data::Dumper::Terse  = 1;
    local $Data::Dumper::Indent = 0;
    return Dumper(@_);
}
