[gray][i]# Single Quotes Regular Expression[/i][/gray]
[url=http://perldoc.perl.org/functions/our.html][black][b]our[/b][/black][/url] [blue]$singleQuotes[/blue] = [red]qr{[/red][purple][/purple]
[purple] [purple][b]\'[/b][/purple] (?:[/purple]
[purple] (?> [^[purple][b]\'[/b][/purple][purple][b]\\[/b][/purple]]+ )[/purple]
[purple] |[/purple]
[purple] [purple][b]\\[/b][/purple] .[/purple]
[purple] )* [purple][b]\'[/b][/purple][/purple]
[purple][/purple][red]}[/red][red]sx[/red][red];[/red]
[gray][i]# Double Quotes Regular Expression[/i][/gray]
[black][b]our[/b][/black] [blue]$doubleQuotes[/blue] = [red]qr{[/red][purple][/purple]
[purple] [purple][b]\"[/b][/purple] (?:[/purple]
[purple] (?> [^[purple][b]\"[/b][/purple][purple][b]\\[/b][/purple]]+ )[/purple]
[purple] |[/purple]
[purple] [purple][b]\\[/b][/purple] .[/purple]
[purple] )* [purple][b]\"[/b][/purple][/purple]
[purple][/purple][red]}[/red][red]sx[/red][red];[/red]
[gray][i]# Parenthesis Regular Expression (Perl related)[/i][/gray]
[black][b]our[/b][/black] [blue]$parens[/blue] = [red]qr{[/red][purple][/purple]
[purple] [purple][b]\([/b][/purple][/purple]
[purple] (?:[/purple]
[purple] (?> [^[purple][b]\)[/b][/purple][purple][b]\([/b][/purple][purple][b]\'[/b][/purple][purple][b]\"[/b][/purple]]+ )[/purple]
[purple] |[/purple]
[purple] (??{ [blue]$parens[/blue] })[/purple]
[purple] |[/purple]
[purple] (??{ [blue]$singleQuotes[/blue] })[/purple]
[purple] |[/purple]
[purple] (??{ [blue]$doubleQuotes[/blue] })[/purple]
[purple] )*[/purple]
[purple] [purple][b]\)[/b][/purple][/purple]
[purple][/purple][red]}[/red][red]sx[/red][red];[/red]
[gray][i]#gettext(params)[/i][/gray]
[black][b]our[/b][/black] [blue]$gettext[/blue] = [red]qr{[/red][purple][/purple]
[purple] gettext[purple][b]\s[/b][/purple]*[purple][b]\([/b][/purple][/purple]
[purple] ( # Capture first parameter[/purple]
[purple] (?:[/purple]
[purple] (?> [^[purple][b]\)[/b][/purple][purple][b]\,[/b][/purple][purple][b]\([/b][/purple][purple][b]\'[/b][/purple][purple][b]\"[/b][/purple]]+ )[/purple]
[purple] |[/purple]
[purple] (??{ [blue]$parens[/blue] })[/purple]
[purple] |[/purple]
[purple] (??{ [blue]$singleQuotes[/blue] })[/purple]
[purple] |[/purple]
[purple] (??{ [blue]$doubleQuotes[/blue] })[/purple]
[purple] )*[/purple]
[purple] ) # End Capture[/purple]
[purple] [[purple][b]\)[/b][/purple][purple][b]\,[/b][/purple]][/purple]
[purple][/purple][red]}[/red][red]sx[/red][red];[/red]
[url=http://perldoc.perl.org/functions/my.html][black][b]my[/b][/black][/url] [blue]$data[/blue] = [url=http://perldoc.perl.org/functions/do.html][black][b]do[/b][/black][/url] [red]{[/red][url=http://perldoc.perl.org/functions/local.html][black][b]local[/b][/black][/url] [blue]$/[/blue][red];[/red] <DATA>[red]}[/red][red];[/red]
[olive][b]while[/b][/olive] [red]([/red][blue]$data[/blue] =~ [red]/[/red][purple][blue]$gettext[/blue][/purple][red]/[/red][red]sg[/red][red])[/red] [red]{[/red]
[url=http://perldoc.perl.org/functions/print.html][black][b]print[/b][/black][/url] [red]"[/red][purple]Parameter is <[blue]$1[/blue]>[purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[red]}[/red]
[fuchsia]1[/fuchsia][red];[/red]
[teal]__END__[/teal]
[teal]# These are just simple parameters. They should be easy.[/teal]
[teal]gettext("single parameters");[/teal]
[teal]# This is double. again easy.[/teal]
[teal]gammergammer(); gettext("double parameters", 10); ooobaby();[/teal]
[teal]# Single but multi-line.[/teal]
[teal]gettext([/teal]
[teal] "ha! we can hit return!"[/teal]
[teal]);[/teal]
[teal]# Ha, we can include another function! Woot Woot![/teal]
[teal]gettext([/teal]
[teal] foobar("boo shocka locka"),[/teal]
[teal] "ha! we can hit return!"[/teal]
[teal]);[/teal]
[teal]# Most complicated[/teal]
[teal]gettext([/teal]
[teal] foo("boo shocka locka"),[/teal]
[teal] bar(10,baz(),biz()),[/teal]
[teal] "ha! we can hit return!"[/teal]
[teal]);[/teal]
[teal]# More Most Complicated[/teal]
[teal]gettext([/teal]
[teal] foo("comma , and paren )",'single \' quotes'),[/teal]
[teal] bar(10,baz(),biz()),[/teal]
[teal] "ha! we can hit return!"[/teal]
[teal]);[/teal]