in reply to Re^2: substitution with regex
in thread substitution with regex

Hello drose2211,

The sprintf function applies the formatting specified in the template supplied as its first argument, to produce a string using the remaining arguments. In this case, the template ' %d/%d ' means: print a space, followed by the next argument formatted as an integer, followed by a slash, followed by the next argument formatted as an integer, followed by a space. Without the sprintf function, the code would be longer and less elegant:

$line =~ s{ \s (M?\d{2}) / (M?\d{2}) \s } { ' ' . int(convert($1)) . '/' . int(convert($2)) . ' ' }xeg +;

(Perl’s printf and sprintf functions are derived from their equivalents in C. In Perl, there is also print, which does not take a template, but there is no corresponding sprint.)

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,