use strict;
my $str = 'var MODULE = ((my, $, undefined) => {
console.log(\'EXECUTION FROM LEGACY APP START ===>\');
// if private var defined in my module, use that
// else create a private var
var _private = my._private = my._private || {},
_seal = my._seal = function seal(seal) {
if (!seal) {
return;
}
delete my._private;
delete my._seal;
console.log(\'SEALED\');
},
_unseal = my._unseal = function unseal(unseal) {
if (!unseal) {
return;
}
my._seal = _seal;
my._private = _private;
console.log(\'UNSEALED\');
};
var name = \'Tonny Frank\';
_private.name = \'This is a private name: \' + name;
_private.reverse = function reverse(str) {
return str.split(\'\').reverse().join(\'\');
};
if ($ === undefined) {
console.log(\'jQuery not defined\');
return;
}
$(() => {
var $h1 = $(\'.card\').children(\'h1\');
$h1.html(_private.reverse($h1.html()));
});
console.log(my);
my.myMethod = () => {
console.log(\'MODULE myMethod Executed\');
$(\'.name\').html(\'Abhisek ...\');
$(\'button\').click(function (ev) {
ev.preventDefault();
console.log(this);
$(this).html(\'Damn!\');
});
};
console.log(\'EXECUTION FROM LEGACY APP END <===\');
return my;
})(MODULE || {}, this.jQuery);
';
my $regex = qr/(\([\w\s].*[\w\s]\)|\(\)) =>/mip;
my $subst = 'function $1';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html