Summor i Perl och awk

Om man nöjer sig med 64-bitarsresultatet kan man skriva ett perl-program  (www.perl.org), för den ena summan, direkt i sitt shell (i alla exemplen nedan är % unix-prompten):

% perl   Ge kommandot perl
for($k = 1; $k <= 1000000; $k++) { Perl läser dessa rader
  $s += 1.0 / $k;
}
print $s, "\n";
^D Här tryckte jag ^D (control-D, end-of-file i unix) 14.392726722864988886 Perl läser då programmet och kör det sedan

Lite kortare:

% perl
for($k = 1; $k <= 1000000; $s += 1.0 / $k++) {;}
print $s, "\n";
^D
14.392726722864988886

Man kan missbruka awk på motsvarande sätt:

% awk 'END {for(k = 1; k <= 1000000; k++) s += 1 / k; print s}'
^D
14.3927


Back