[thelist] perl: inlining functions + postgres triggers
David Siedband
technique at oceanicsky.com
Sat Jul 30 14:30:02 CDT 2005
I'm using a trigger in PostgreSQL to override an insert query and
build a wget request that calls a python object on separate machine.
I need to encode the fields (escape spaces, etc.) so they can be
passed as a valid URL. It seems I can't import modules with 'use' or
do subroutines, so I'd like to just inline the function.
Here is the plperlu statement that works when there are no spaces in
the $body variable:
CREATE OR REPLACE FUNCTION customerfolder_add (text,text) RETURNS
text as '
$body = shift;
$phone = shift;
$sec = "--http-user=userNameHere --http-passwd=passWordHere";
$portal = "/Plone";
$server = "localhost:8080";
$wget = "/usr/bin/wget";
$cmd = "$wget $sec -q -O - http://$server/$portal/create_customer?
body=$body" . '&phone' . "=$phone";
return `$cmd`;
' LANGUAGE plperlu;
Here is the subroutine I want to apply this function to $body.
sub URLEncode {
my $theURL = $_[0];
$theURL =~ s/([\W])/"%" . uc(sprintf("%2.2x",ord($1)))/eg;
return $theURL;
}
How do I inline the above function and apply to the $body variable?
thx
--
David
More information about the thelist
mailing list