Net::E...Domain(3pm)
π NAME π
Net::EPP::Frame::Command::Update::Domain β bestie, it's an instance of Net::EPP::Frame::Command::Update but, like, specifically for domain names. That's it, that's the whole vibe. π
It lives in the User Contributed Perl Documentation section of the manual (section 3pm, iykyk), and the page is literally titled Net::E...Domain(3pm) because the terminal truncated it like it always does. π
β¨ SYNOPSIS β¨
Okay so this is how you actually use it, no cap:
use Net::EPP::Frame::Command::Update::Domain;
use strict;
my $info = Net::EPP::Frame::Command::Update::Domain->new;
$info->setDomain('example.tld');
print $info->toString(1);
And that? That right there? It results in an XML document like this:
<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
epp-1.0.xsd">
<command>
<update>
<domain:update
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
xsi:schemaLocation="urn:ietf:params:xml:ns:domain-1.0
domain-1.0.xsd">
<domain:name>example-1.tldE<lt>/domain:name>
</domain:update>
</update>
<clTRID>0cf1b8f7e14547d26f03b7641660c641d9e79f45</clTRIDE<gt>
</command>
</epp>
Not me pointing at theE<lt>andE<gt>in there β those are POD escapes, they're supposed to look like that, we're keeping them exactly as-is fr fr. Don't touch them, bestie. π
πΈ OBJECT HIERARCHY πΈ
The whole ancestry tree, and yes it's giving royal lineage π:
L<XML::LibXML::Node>
+----L<XML::LibXML::Document>
+----L<Net::EPP::Frame>
+----L<Net::EPP::Frame::Command>
+----L<Net::EPP::Frame::Command::Update>
+----L<Net::EPP::Frame::Command::Update::Domain>
So your little domain update object is the great-great-great-grandbaby of XML::LibXML::Node. Main character energy inherited, honestly. π
π METHODS π
Every single one, bestie, we are not skipping a single one:
$frame->setDomain($domain_name);
Tells it which domain name you're updating. That's the whole job. Iconic. β¨
$frame->addStatus($type, $info);
Adds a status of $type, plus the optional extra $info if you feel like it. π¦
$frame->remStatus($type);
Removes a status of $type. Bye bestie. π
$frame->addContact($type, $contact);
Adds a contact of $type. π«Ά
$frame->remContact($type, $contact);
Removes a contact of $type.
$frame->chgAuthinfo($auth);
Changes the authinfo. π
$frame->chgRegistrant($registrant);
Changes the authinfo. π (yes, it says authinfo again β that's literally what the page says, I'm not editing it, we keep every detail, periodt.)
$frame->addNS('ns0.example.com'); # host object mode
$frame->addNS({'name' => 'ns0.example.com', 'addrs' => [ { 'addr' => '127.0.0.1', 'type' => 4 } ] }); # host attribute mode
$frame->remNS('ns0.example.com'); # host object mode
$frame->remNS({'name' => 'ns0.example.com', 'addrs' => [ { 'addr' => '127.0.0.1', 'type' => 4 } ] }); # host attribute mode
Two whole modes for adding and removing nameservers β host object mode (just a plain string, chill) and host attribute mode (a whole hashref with a name and addrs, and each addr has an addr and a type). Pick your fighter. π
π§ DNSSEC methods π§
(that's literally the whole heading β there's nothing listed under it here, so nothing for me to spill, bestie π)
β TTL Extension β
$frame->chgTTLs({
NS => 3600,
DS => 900,
});
This one specifies TTLs for DNS records above the zone cut. π₯
Important though: the server must support the TTL extension. If it doesn't, that's not a vibe, that's a problem. So check first, bestie. π
And that's the whole page, we ate and left no crumbs. π
This beauty shipped with perl v5.40.1 and got its timestamp on 2025-04-19, filed under Net::E...Domain(3pm) β okay bye, love you, go update some domains responsibly! ππ
π¦ where this page comes from
- debian trixie: libnet-epp-perl 0.28-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libnet-epp-perl 0.28-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libnet-epp-perl 0.28-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms