#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use IPC::System::Simple 'capture'; my $cmd = "setop --intersect " . join " ", @ARGV; chomp (my @output = capture( $cmd )); my %hash; $hash{$ARGV[1]} = \@output; print Dumper \%hash; __END__ $ perl test.pl file1.txt file2.txt $VAR1 = { 'file2.txt' => [ 'Sample line 1', 'Sample line 2', 'Sample line 3', 'Sample line 4', 'Sample line 5', 'Sample line 6', 'Sample line 7', 'Sample line 8', 'Sample line 9', 'Sample line 10' ] };