#!/usr/bin/perl use strict; use warnings; my @Molecule_01 = ( ['C', 0.2565522, -1.5308230, 0.0000000], ['C', -0.8038556, -0.7047550, 0.0000000], ['C', -0.8519687, 0.7637319, 0.0000000], ['C', 0.3236482, 1.5968480, 0.0000000], ); my @Molecule_02 = ( ['C', 0.3916152, -1.5774692, 0.0000000], ['C', -0.8180007, -0.7937790, 0.0000000], ['C', -0.8314989, 0.6754852, 0.0000000], ['C', 0.1934963, 1.5451038, 0.0000000], ); my @Delta; for my $i (0 .. $#Molecule_01) { my $row = $Molecule_01[$i]; my @rowResults; push @rowResults, $Molecule_01[$i][0]; for my $j (1 .. $#{$row}) { push @rowResults, $Molecule_01[$i][$j] - $Molecule_02[$i][$j]; } push @Delta, \@rowResults; } print "@$_\n" for @Delta;