Index: /trunk/PS-IPP-PSFTP/Build.PL
===================================================================
--- /trunk/PS-IPP-PSFTP/Build.PL	(revision 5252)
+++ /trunk/PS-IPP-PSFTP/Build.PL	(revision 5253)
@@ -8,4 +8,7 @@
     license             => 'gpl',
     create_makefile_pl  => 'passthrough',
+    requires            => {
+        'Params::Validate'      => '0.77',
+    },
     build_requires      => {
         'Test::Warn'            => '0.08',
Index: /trunk/PS-IPP-PSFTP/lib/PS/IPP/PSFTP/Parser.pm
===================================================================
--- /trunk/PS-IPP-PSFTP/lib/PS/IPP/PSFTP/Parser.pm	(revision 5252)
+++ /trunk/PS-IPP-PSFTP/lib/PS/IPP/PSFTP/Parser.pm	(revision 5253)
@@ -1,5 +1,5 @@
 # Copyright (C) 2005  Joshua Hoblitt
 #
-# $Id: Parser.pm,v 1.2 2005-10-08 01:20:12 jhoblitt Exp $
+# $Id: Parser.pm,v 1.3 2005-10-08 02:09:05 jhoblitt Exp $
 
 package PS::IPP::PSFTP::Parser;
@@ -8,4 +8,5 @@
 
 use Carp qw( carp );
+use Params::Validate qw( validate_pos SCALAR );
 
 use vars qw( @FIELDS @REQUIRED_FIELDS );
@@ -16,7 +17,9 @@
 sub new
 {
-    my ($class, %parameters) = @_;
+    my $class = shift;
 
-    my $self = bless ({}, ref ($class) || $class);
+    validate_pos(@_);
+
+    my $self = bless {}, ref ($class) || $class;
 
     return $self;
@@ -25,5 +28,12 @@
 sub parse
 {
-    my ($self, $doc) = @_;
+    my $self = shift;
+
+    my ($doc) = validate_pos(@_,
+        {
+            type    => SCALAR,
+            regex   => qr/\S+/, # string with atleast 1 non WS char
+        }
+    );
 
     # pack data into an HoH
