#!/usr/bin/perl use v5.12; use warnings; my $n=0; my $bytes=0; for my $dirname (split /:/,$ENV{'PATH'}) { opendir my $dir,$dirname or die "Can't open $dirname: $!"; my @exe=grep { -f -x $_ } map { "$dirname/$_" } readdir $dir; closedir $dir; say "$dirname: ",0+@exe; $n+=@exe; $bytes+=-s $_ for @exe; } say "total: $n, $bytes";