Perl - Using HTTP::Lite
I recently had to use the HTTP::Lite perl module and thought I would share an example of how to use it. HTTP::Lite was is available on www.cpan.org; its very lightweight and has no dependancies other than Socket & Fcntl which included with almost all Perl implementations by default. Based on the examples by the HTTP::Lite author Roy Hooper rhooper@thetoybox.org [perl] #!perl use HTTP::Lite; # # Get and print out the headers and body of the Google homepage # $http = new HTTP::Lite; $req = $http->request("http://www.google.co.uk/") or die "Unable to get document: $!"; # Print the reconstructed status line print $http->protocol() . " " . $req . " " . $http->status_message() . ""; # Get the Headers & Body @headers = $http->headers_array(); $body = $http->body(); # Display each Header foreach $header (@headers) { print $header . "\n"; } print "\n\n"; # Display the Body print $body . "\n"; # # Execute a Google Search using the POST method # $http = new HTTP::Lite; # Post variables %vars = ( "hl" => "en", "q" => "cpan", "btnG" => "Search", "meta" => "" ); $http->prepare_post(%vars); $req = $http->request("http://www.google.co.uk/search") or die "Unable to get document: $!"; # Print the reconstructed status line print $http->protocol() . " " . $req . " " . $http->status_message() . ""; # Get the Headers & Body @headers = $http->headers_array(); $body = $http->body(); # Display each Header foreach $header (@headers) { print $header . "\n"; } print "\n\n"; # Display the Body print $body . "\n"; [/perl] Google doesnt support queries by POST methods anymore, so the response to the second request here will be a "501 Not Implemented".
The Cutler.sg Newsletter
Weekly notes on AI, engineering leadership, and building in Singapore. No fluff.
From Solo Tool to Team Infrastructure: Scaling Gluon for Production
When I first built Gluon on my Mac mini, I was solving a personal problem: monitoring Claude agents without losing my mind to tmux logs. But when teams join the picture, everything changes — security, governance, observability, and the fundamental role of the developer. Here's what production infrastructure for autonomous agents looks like.
Ralph Loop: Teaching AI Agents to Work Autonomously (Without Burning Your Budget)
How Gluon's Ralph Loop enables autonomous Claude execution with built-in safety rails — circuit breakers, multi-signal completion detection, and cost controls that scale from simple tasks to complex workflows.
Scraper MCP: Context-Efficient Web Scraping for LLMs
I built an open-source MCP server that reduces LLM token usage by 70-90% through server-side HTML filtering, markdown conversion, and CSS selector targeting. Here's why context efficiency matters—and how Scraper MCP solves it.