This is not exactly golf, and works only for nonnegative integers.
#!perl
use warnings;
use strict;
{
my $adder = '
G
s/^ *\([0-9]*\) *\n\([0-9]*\)$/0\1pm0\2nb0/;td;d;
:d;s/n\(\(b\).*0\|\)[^0]*$/nb98765432109876543210a0123456789\2
+/;
s/\(.\)\(p.*\)\(.\)\(n.*\1\).*a.*\3/\2\4\3/;
s/^0*\(.*\)p\(.*m\)0*\(.*\)\(.\).\{11\}$/0\1p\4\20\3/;
/m0*n.*0/!bd;
s/^\(.*\)p\(.*\)m.*/\1\2/;s/^0*//;
h;$!d
';
$adder =~ s/;/\n/g; # some seds don't like semicolons
sub printsum {
open my $SED, "|-", "sed", $adder or die "error running sed: $
+!";
print $SED int($_), "\n" or die "error writing to sed: $!"
for @_;
close $SED or die "error closing sed: $!";
}
}
my @array = (1,3,5,6);
printsum(@array);
__END__
Update 2007-12-06: see Re^2: --- adding a column of integers
Update 2011-10-29: see also (almost) foldl.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|