The perl version is less incomprehensible as the sed one.
Code:
$ perl -n -e 's/^([^-]*)-(pkg.*)/mv $1-$2 $1_$2/; print;' tmp
mv NOW/latest-pkg NOW/latest_pkg
mv NOW/latest-pkg-calyx NOW/latest_pkg-calyx
mv NOW/latest-pkg-erlangen NOW/latest_pkg-erlangen
mv NOW/latest-pkg-esat NOW/latest_pkg-esat
mv NOW/latest-pkg-plig NOW/latest_pkg-plig
mv NOW/latest-pkg-stacken NOW/latest_pkg-stacken
It is nearly identical to the incomprehensible regex for sed.
The differences
Code:
sed perl
\( (
\) )
\1 $1
\2 $2
Less danger for the leaning toothpick syndrome