#!/usr/bin/perl -wl use strict; use Data::Dumper; my $SET = 3; my @SCORE_FILES = ( '/usr/share/spamassassin/50_scores.cf', '/etc/mail/spamassassin/local.cf', "$ENV{HOME}/.spamassassin/user_prefs" ); my $SCORES = (); sub get_scores { foreach (@SCORE_FILES) { # print $_,$/; open(my $fh, $_) or next; while(<$fh>) { next unless /^score\s+(\S+)\s+(.+?)\s*$/; my ($rule, $scores) = ($1, $2); my @sc = split /\s+/, $scores; next unless @sc; $SCORES->{$rule} = $sc[$SET] || $sc[0]; # foreach(0..3) { # $SCORES->{$rule}{$_} = $sc[$_] || $sc[0]; # } } close $fh; } } get_scores; print $ARGV[0] ? $SCORES->{$ARGV[0]} : Dumper $SCORES;