I have a source file where I use a macro to do logging. Typical logging lines look like:
STDOUT_LOG(logDEBUG4) << \"a single line log text\" << aVari
Here is a way to do it:
use Modern::Perl;
my @lines = (
'STDOUT_LOG(logDEBUG4) << "a single line log text" << aVariable;',
' STDOUT_LOG(logDEBUG4)
<< bsd->sensorName
<< " trainMinValueInWin = " << value.trough
<< " trainMaxValueInWin = " << value.peak
<< " |";'
);
for (@lines) {
s/(STDOUT_LOG\(.*?)\)(\s*)<<(.*?);/$1, $2$3);/gs;
say;
}
Output:
STDOUT_LOG(logDEBUG4, "a single line log text" << aVariable);
STDOUT_LOG(logDEBUG4,
bsd->sensorName
<< " trainMinValueInWin = " << value.trough
<< " trainMaxValueInWin = " << value.peak
<< " |");