lib/PublicInbox/GitCatFile.pm | 5 +---- lib/PublicInbox/Hval.pm | 9 ++++----- lib/PublicInbox/Mbox.pm | 11 +++++------ lib/PublicInbox/Msgmap.pm | 4 +--- lib/PublicInbox/NewsGroup.pm | 10 +++++----- lib/PublicInbox/SearchView.pm | 19 ++++++++----------- public-inbox-nntpd | 13 ++++++------- diff --git a/lib/PublicInbox/GitCatFile.pm b/lib/PublicInbox/GitCatFile.pm index 540369616db2006473a69f94cad014a12cadd246..629d23ed214b5273f4aeacffa42945085c415199 100644 --- a/lib/PublicInbox/GitCatFile.pm +++ b/lib/PublicInbox/GitCatFile.pm @@ -8,13 +8,10 @@ use strict; use warnings; use POSIX qw(dup2); require IO::Handle; -use fields qw(git_dir pid in out); sub new { my ($class, $git_dir) = @_; - my $self = fields::new($class); - $self->{git_dir} = $git_dir; - $self; + bless { git_dir => $git_dir }, $class } sub _cat_file_begin { diff --git a/lib/PublicInbox/Hval.pm b/lib/PublicInbox/Hval.pm index e0ec630583dd84364c6131575d8bf5a655d816a4..9fbe616f302e3d1580d5ccb83cfc7e8b59406847 100644 --- a/lib/PublicInbox/Hval.pm +++ b/lib/PublicInbox/Hval.pm @@ -5,7 +5,6 @@ # represents a header value in various forms package PublicInbox::Hval; use strict; use warnings; -use fields qw(raw href); use Encode qw(find_encoding); use URI::Escape qw(uri_escape_utf8); use PublicInbox::MID qw/mid_clean/; @@ -14,14 +13,14 @@ my $enc_ascii = find_encoding('us-ascii'); sub new { my ($class, $raw, $href) = @_; - my $self = fields::new($class); # we never care about leading/trailing whitespace $raw =~ s/\A\s*//; $raw =~ s/\s*\z//; - $self->{raw} = $raw; - $self->{href} = defined $href ? $href : $raw; - $self; + bless { + raw => $raw, + href => defined $href ? $href : $raw, + }, $class; } sub new_msgid { diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm index c92d444774cef389fb6f35d0b38b4b3639377aba..8bb8dc83ba3d99acc438cae0f62d69203405f529 100644 --- a/lib/PublicInbox/Mbox.pm +++ b/lib/PublicInbox/Mbox.pm @@ -110,16 +110,15 @@ # to prevent IO::Compress::Gzip from complaining package PublicInbox::MboxGz; use strict; use warnings; -use fields qw(gz fh buf); sub new { my ($class, $fh) = @_; - my $self = fields::new($class); my $buf; - $self->{buf} = \$buf; - $self->{gz} = IO::Compress::Gzip->new(\$buf); - $self->{fh} = $fh; - $self; + bless { + buf => \$buf, + gz => IO::Compress::Gzip->new(\$buf), + fh => $fh, + }, $class; } sub _flush_buf { diff --git a/lib/PublicInbox/Msgmap.pm b/lib/PublicInbox/Msgmap.pm index f28579088e1ac78682915007873b0c8ef4766544..8a34e7e0c713a4036cd156de22795a525320e5d7 100644 --- a/lib/PublicInbox/Msgmap.pm +++ b/lib/PublicInbox/Msgmap.pm @@ -4,7 +4,6 @@ # bidirectional Message-ID <-> Article Number mapping package PublicInbox::Msgmap; use strict; use warnings; -use fields qw(dbh mid_insert mid_for num_for num_minmax); use DBI; use DBD::SQLite; @@ -23,8 +22,7 @@ PrintError => 0, sqlite_use_immediate_transaction => 1, }); $dbh->do('PRAGMA case_sensitive_like = ON'); - my $self = fields::new($class); - $self->{dbh} = $dbh; + my $self = bless { dbh => $dbh }, $class; if ($writable) { create_tables($dbh); diff --git a/lib/PublicInbox/NewsGroup.pm b/lib/PublicInbox/NewsGroup.pm index 0c7051db92ce65410641b33da449243c8447441c..1250b0d84db3c9881da0b06a145446f0b3032b60 100644 --- a/lib/PublicInbox/NewsGroup.pm +++ b/lib/PublicInbox/NewsGroup.pm @@ -3,7 +3,6 @@ # License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt) package PublicInbox::NewsGroup; use strict; use warnings; -use fields qw(name git_dir address domain mm gcf search); use Scalar::Util qw(weaken); require Danga::Socket; require PublicInbox::Msgmap; @@ -11,12 +10,13 @@ require PublicInbox::GitCatFile; sub new { my ($class, $name, $git_dir, $address) = @_; - my $self = fields::new($class); - $self->{name} = $name; $address = $address->[0] if ref($address); + my $self = bless { + name => $name, + git_dir => $git_dir, + address => $address, + }, $class; $self->{domain} = ($address =~ /\@(\S+)\z/) ? $1 : 'localhost'; - $self->{git_dir} = $git_dir; - $self->{address} = $address; $self; } diff --git a/lib/PublicInbox/SearchView.pm b/lib/PublicInbox/SearchView.pm index 6bc66ceb0ca68d35d9f0a82f29e3771f609d78b6..cfc650f437a0dada30d4c41a39285a70e99ffcb1 100644 --- a/lib/PublicInbox/SearchView.pm +++ b/lib/PublicInbox/SearchView.pm @@ -257,27 +257,24 @@ package PublicInbox::SearchQuery; use strict; use warnings; -use fields qw(q o t x r); use PublicInbox::Hval; sub new { my ($class, $cgi) = @_; - my $self = fields::new($class); - $self->{q} = $cgi->param('q'); - $self->{x} = $cgi->param('x') || ''; - $self->{o} = int($cgi->param('o') || 0) || 0; - my $r = $cgi->param('r'); - $self->{r} = (defined $r && $r ne '0'); - - $self; + my $r => $cgi->param('r'), + bless { + q => $cgi->param('q'), + x => $cgi->param('x') || '', + o => int($cgi->param('o') || 0) || 0, + r => (defined $r && $r ne '0'), + }, $class; } sub qs_html { my ($self, %over) = @_; if (keys %over) { - my $tmp = fields::new(ref($self)); - %$tmp = %$self; + my $tmp = bless { %$self }, ref($self); foreach my $k (keys %over) { $tmp->{$k} = $over{$k}; } diff --git a/public-inbox-nntpd b/public-inbox-nntpd index f6042c2f9d1fb14d86986f13c3cef38829fa3069..79161fb71b2fb188ba69b04c98f4fdccfbabf6e6 100644 --- a/public-inbox-nntpd +++ b/public-inbox-nntpd @@ -15,16 +15,15 @@ 1; package PublicInbox::NNTPD; use strict; use warnings; -use fields qw(groups grouplist err out); sub new { my ($class) = @_; - my $self = fields::new($class); - $self->{groups} = {}; - $self->{err} = \*STDERR; - $self->{out} = \*STDOUT; - $self->{grouplist} = []; - $self; + bless { + groups => {}, + err => \*STDERR, + out => \*STDOUT, + grouplist => [], + }, $class; } sub refresh_groups () {