Commits

Toby Inkster committed c71b4b2

test constants

Comments (0)

Files changed (2)

lib/Scalar/Does.pm

 	LVALUE   => sub { ref($_) eq 'LVALUE' },
 	FORMAT   => sub { reftype($_) eq 'FORMAT' },
 	IO       => \&is_filehandle,
-	VSTRING  => sub { reftype($_) eq 'VSTRING' or reftype($_) eq 'VSTRING' },
-	Regexp   => sub { reftype($_) eq 'Regexp'  or overloads($_, q[qr]) },
+	VSTRING  => sub { reftype($_) eq 'VSTRING' or ref($_) eq 'VSTRING' },
+	Regexp   => sub { reftype($_) eq 'Regexp'  or ref($_) eq 'Regexp'  or overloads($_, q[qr]) },
 	q[bool]  => sub { !blessed($_) or !overload::Overloaded($_) or overloads($_, q[bool]) },
 	q[""]    => sub { !ref($_)     or !overload::Overloaded($_) or overloads($_, q[""]) },
 	q[0+]    => sub { !ref($_)     or !overload::Overloaded($_) or overloads($_, q[0+]) },
+use strict;
+use Test::More;
+use Scalar::Does -constants;
+
+my $var = "Hello world";
+
+ok does(\$var, SCALAR);
+ok does([], ARRAY);
+ok does(+{}, HASH);
+ok does(sub {0}, CODE);
+ok does(\*STDOUT, GLOB);
+ok does(\(\"Hello"), REF);
+ok does(\(substr($var,0,1)), LVALUE);
+ok does(\*STDOUT, IO);
+ok does(\v1.2.3, VSTRING);
+ok does(qr{x}, REGEXP);
+ok does(1, BOOLEAN);
+ok does(1, STRING);
+ok does(1, NUMBER);
+ok does(1, SMARTMATCH);
+
+done_testing;
+
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.