File Coverage

blib/lib/Venus/Scalar.pm
Criterion Covered Total %
statement 17 21 80.9
branch n/a
condition n/a
subroutine 8 9 88.8
pod 2 2 100.0
total 27 32 84.3


line stmt bran cond sub pod time code
1             package Venus::Scalar;
2              
3 12     12   270 use 5.018;
  12         48  
4              
5 12     12   72 use strict;
  12         40  
  12         257  
6 12     12   61 use warnings;
  12         26  
  12         326  
7              
8 12     12   69 use Venus::Class 'base';
  12         24  
  12         84  
9              
10             base 'Venus::Kind::Value';
11              
12             use overload (
13 1     1   6 '${}' => sub{$_[0]->value},
14 1     1   5 '*{}' => sub{$_[0]->value},
15 12         159 fallback => 1,
16 12     12   90 );
  12         30  
17              
18             # METHODS
19              
20             sub assertion {
21 0     0 1 0 my ($self) = @_;
22              
23 0         0 my $assert = $self->SUPER::assertion;
24              
25 0         0 $assert->clear->expression('scalarref');
26              
27 0         0 return $assert;
28             }
29              
30             sub default {
31 184     184 1 659 return \'';
32             }
33              
34             1;
35              
36              
37              
38             =head1 NAME
39              
40             Venus::Scalar - Scalar Class
41              
42             =cut
43              
44             =head1 ABSTRACT
45              
46             Scalar Class for Perl 5
47              
48             =cut
49              
50             =head1 SYNOPSIS
51              
52             package main;
53              
54             use Venus::Scalar;
55              
56             my $scalar = Venus::Scalar->new;
57              
58             # ${$scalar}
59              
60             =cut
61              
62             =head1 DESCRIPTION
63              
64             This package provides methods for manipulating scalar data.
65              
66             =cut
67              
68             =head1 INHERITS
69              
70             This package inherits behaviors from:
71              
72             L
73              
74             =cut
75              
76             =head1 METHODS
77              
78             This package provides the following methods:
79              
80             =cut
81              
82             =head2 cast
83              
84             cast(Str $kind) (Object | Undef)
85              
86             The cast method converts L<"value"|Venus::Kind::Value> objects between
87             different I<"value"> object types, based on the name of the type provided. This
88             method will return C if the invocant is not a L.
89              
90             I>
91              
92             =over 4
93              
94             =item cast example 1
95              
96             package main;
97              
98             use Venus::Scalar;
99              
100             my $scalar = Venus::Scalar->new;
101              
102             my $cast = $scalar->cast('array');
103              
104             # bless({ value => [\""] }, "Venus::Array")
105              
106             =back
107              
108             =over 4
109              
110             =item cast example 2
111              
112             package main;
113              
114             use Venus::Scalar;
115              
116             my $scalar = Venus::Scalar->new;
117              
118             my $cast = $scalar->cast('boolean');
119              
120             # bless({ value => 1 }, "Venus::Boolean")
121              
122             =back
123              
124             =over 4
125              
126             =item cast example 3
127              
128             package main;
129              
130             use Venus::Scalar;
131              
132             my $scalar = Venus::Scalar->new;
133              
134             my $cast = $scalar->cast('code');
135              
136             # bless({ value => sub { ... } }, "Venus::Code")
137              
138             =back
139              
140             =over 4
141              
142             =item cast example 4
143              
144             package main;
145              
146             use Venus::Scalar;
147              
148             my $scalar = Venus::Scalar->new;
149              
150             my $cast = $scalar->cast('float');
151              
152             # bless({ value => "1.0" }, "Venus::Float")
153              
154             =back
155              
156             =over 4
157              
158             =item cast example 5
159              
160             package main;
161              
162             use Venus::Scalar;
163              
164             my $scalar = Venus::Scalar->new;
165              
166             my $cast = $scalar->cast('hash');
167              
168             # bless({ value => { "0" => \"" } }, "Venus::Hash")
169              
170             =back
171              
172             =over 4
173              
174             =item cast example 6
175              
176             package main;
177              
178             use Venus::Scalar;
179              
180             my $scalar = Venus::Scalar->new;
181              
182             my $cast = $scalar->cast('number');
183              
184             # bless({ value => 2 }, "Venus::Number")
185              
186             =back
187              
188             =over 4
189              
190             =item cast example 7
191              
192             package main;
193              
194             use Venus::Scalar;
195              
196             my $scalar = Venus::Scalar->new;
197              
198             my $cast = $scalar->cast('regexp');
199              
200             # bless({ value => qr/(?^u:\\\")/ }, "Venus::Regexp")
201              
202             =back
203              
204             =over 4
205              
206             =item cast example 8
207              
208             package main;
209              
210             use Venus::Scalar;
211              
212             my $scalar = Venus::Scalar->new;
213              
214             my $cast = $scalar->cast('scalar');
215              
216             # bless({ value => \"" }, "Venus::Scalar")
217              
218             =back
219              
220             =over 4
221              
222             =item cast example 9
223              
224             package main;
225              
226             use Venus::Scalar;
227              
228             my $scalar = Venus::Scalar->new;
229              
230             my $cast = $scalar->cast('string');
231              
232             # bless({ value => "\\\"" }, "Venus::String")
233              
234             =back
235              
236             =over 4
237              
238             =item cast example 10
239              
240             package main;
241              
242             use Venus::Scalar;
243              
244             my $scalar = Venus::Scalar->new;
245              
246             my $cast = $scalar->cast('undef');
247              
248             # bless({ value => undef }, "Venus::Undef")
249              
250             =back
251              
252             =cut
253              
254             =head2 default
255              
256             default() (Ref)
257              
258             The default method returns the default value, i.e. C<\''>.
259              
260             I>
261              
262             =over 4
263              
264             =item default example 1
265              
266             # given: synopsis;
267              
268             my $default = $scalar->default;
269              
270             # \""
271              
272             =back
273              
274             =cut
275              
276             =head2 eq
277              
278             eq(Any $arg) (Bool)
279              
280             The eq method performs an I<"equals"> operation using the argument provided.
281              
282             I>
283              
284             =over 4
285              
286             =item eq example 1
287              
288             package main;
289              
290             use Venus::Array;
291             use Venus::Scalar;
292              
293             my $lvalue = Venus::Scalar->new;
294             my $rvalue = Venus::Array->new;
295              
296             my $result = $lvalue->eq($rvalue);
297              
298             # 0
299              
300             =back
301              
302             =over 4
303              
304             =item eq example 2
305              
306             package main;
307              
308             use Venus::Code;
309             use Venus::Scalar;
310              
311             my $lvalue = Venus::Scalar->new;
312             my $rvalue = Venus::Code->new;
313              
314             my $result = $lvalue->eq($rvalue);
315              
316             # 0
317              
318             =back
319              
320             =over 4
321              
322             =item eq example 3
323              
324             package main;
325              
326             use Venus::Float;
327             use Venus::Scalar;
328              
329             my $lvalue = Venus::Scalar->new;
330             my $rvalue = Venus::Float->new;
331              
332             my $result = $lvalue->eq($rvalue);
333              
334             # 0
335              
336             =back
337              
338             =over 4
339              
340             =item eq example 4
341              
342             package main;
343              
344             use Venus::Hash;
345             use Venus::Scalar;
346              
347             my $lvalue = Venus::Scalar->new;
348             my $rvalue = Venus::Hash->new;
349              
350             my $result = $lvalue->eq($rvalue);
351              
352             # 0
353              
354             =back
355              
356             =over 4
357              
358             =item eq example 5
359              
360             package main;
361              
362             use Venus::Number;
363             use Venus::Scalar;
364              
365             my $lvalue = Venus::Scalar->new;
366             my $rvalue = Venus::Number->new;
367              
368             my $result = $lvalue->eq($rvalue);
369              
370             # 0
371              
372             =back
373              
374             =over 4
375              
376             =item eq example 6
377              
378             package main;
379              
380             use Venus::Regexp;
381             use Venus::Scalar;
382              
383             my $lvalue = Venus::Scalar->new;
384             my $rvalue = Venus::Regexp->new;
385              
386             my $result = $lvalue->eq($rvalue);
387              
388             # 0
389              
390             =back
391              
392             =over 4
393              
394             =item eq example 7
395              
396             package main;
397              
398             use Venus::Scalar;
399              
400             my $lvalue = Venus::Scalar->new;
401             my $rvalue = Venus::Scalar->new;
402              
403             my $result = $lvalue->eq($rvalue);
404              
405             # 1
406              
407             =back
408              
409             =over 4
410              
411             =item eq example 8
412              
413             package main;
414              
415             use Venus::Scalar;
416             use Venus::String;
417              
418             my $lvalue = Venus::Scalar->new;
419             my $rvalue = Venus::String->new;
420              
421             my $result = $lvalue->eq($rvalue);
422              
423             # 0
424              
425             =back
426              
427             =over 4
428              
429             =item eq example 9
430              
431             package main;
432              
433             use Venus::Scalar;
434             use Venus::Undef;
435              
436             my $lvalue = Venus::Scalar->new;
437             my $rvalue = Venus::Undef->new;
438              
439             my $result = $lvalue->eq($rvalue);
440              
441             # 0
442              
443             =back
444              
445             =cut
446              
447             =head2 ge
448              
449             ge(Any $arg) (Bool)
450              
451             The ge method performs a I<"greater-than-or-equal-to"> operation using the
452             argument provided.
453              
454             I>
455              
456             =over 4
457              
458             =item ge example 1
459              
460             package main;
461              
462             use Venus::Array;
463             use Venus::Scalar;
464              
465             my $lvalue = Venus::Scalar->new;
466             my $rvalue = Venus::Array->new;
467              
468             my $result = $lvalue->ge($rvalue);
469              
470             # 0
471              
472             =back
473              
474             =over 4
475              
476             =item ge example 2
477              
478             package main;
479              
480             use Venus::Code;
481             use Venus::Scalar;
482              
483             my $lvalue = Venus::Scalar->new;
484             my $rvalue = Venus::Code->new;
485              
486             my $result = $lvalue->ge($rvalue);
487              
488             # 0
489              
490             =back
491              
492             =over 4
493              
494             =item ge example 3
495              
496             package main;
497              
498             use Venus::Float;
499             use Venus::Scalar;
500              
501             my $lvalue = Venus::Scalar->new;
502             my $rvalue = Venus::Float->new;
503              
504             my $result = $lvalue->ge($rvalue);
505              
506             # 1
507              
508             =back
509              
510             =over 4
511              
512             =item ge example 4
513              
514             package main;
515              
516             use Venus::Hash;
517             use Venus::Scalar;
518              
519             my $lvalue = Venus::Scalar->new;
520             my $rvalue = Venus::Hash->new;
521              
522             my $result = $lvalue->ge($rvalue);
523              
524             # 0
525              
526             =back
527              
528             =over 4
529              
530             =item ge example 5
531              
532             package main;
533              
534             use Venus::Number;
535             use Venus::Scalar;
536              
537             my $lvalue = Venus::Scalar->new;
538             my $rvalue = Venus::Number->new;
539              
540             my $result = $lvalue->ge($rvalue);
541              
542             # 1
543              
544             =back
545              
546             =over 4
547              
548             =item ge example 6
549              
550             package main;
551              
552             use Venus::Regexp;
553             use Venus::Scalar;
554              
555             my $lvalue = Venus::Scalar->new;
556             my $rvalue = Venus::Regexp->new;
557              
558             my $result = $lvalue->ge($rvalue);
559              
560             # 0
561              
562             =back
563              
564             =over 4
565              
566             =item ge example 7
567              
568             package main;
569              
570             use Venus::Scalar;
571              
572             my $lvalue = Venus::Scalar->new;
573             my $rvalue = Venus::Scalar->new;
574              
575             my $result = $lvalue->ge($rvalue);
576              
577             # 1
578              
579             =back
580              
581             =over 4
582              
583             =item ge example 8
584              
585             package main;
586              
587             use Venus::Scalar;
588             use Venus::String;
589              
590             my $lvalue = Venus::Scalar->new;
591             my $rvalue = Venus::String->new;
592              
593             my $result = $lvalue->ge($rvalue);
594              
595             # 1
596              
597             =back
598              
599             =over 4
600              
601             =item ge example 9
602              
603             package main;
604              
605             use Venus::Scalar;
606             use Venus::Undef;
607              
608             my $lvalue = Venus::Scalar->new;
609             my $rvalue = Venus::Undef->new;
610              
611             my $result = $lvalue->ge($rvalue);
612              
613             # 1
614              
615             =back
616              
617             =cut
618              
619             =head2 gele
620              
621             gele(Any $arg1, Any $arg2) (Bool)
622              
623             The gele method performs a I<"greater-than-or-equal-to"> operation on the 1st
624             argument, and I<"lesser-than-or-equal-to"> operation on the 2nd argument.
625              
626             I>
627              
628             =over 4
629              
630             =item gele example 1
631              
632             package main;
633              
634             use Venus::Array;
635             use Venus::Scalar;
636              
637             my $lvalue = Venus::Scalar->new;
638             my $rvalue = Venus::Array->new;
639              
640             my $result = $lvalue->gele($rvalue);
641              
642             # 0
643              
644             =back
645              
646             =over 4
647              
648             =item gele example 2
649              
650             package main;
651              
652             use Venus::Code;
653             use Venus::Scalar;
654              
655             my $lvalue = Venus::Scalar->new;
656             my $rvalue = Venus::Code->new;
657              
658             my $result = $lvalue->gele($rvalue);
659              
660             # 0
661              
662             =back
663              
664             =over 4
665              
666             =item gele example 3
667              
668             package main;
669              
670             use Venus::Float;
671             use Venus::Scalar;
672              
673             my $lvalue = Venus::Scalar->new;
674             my $rvalue = Venus::Float->new;
675              
676             my $result = $lvalue->gele($rvalue);
677              
678             # 0
679              
680             =back
681              
682             =over 4
683              
684             =item gele example 4
685              
686             package main;
687              
688             use Venus::Hash;
689             use Venus::Scalar;
690              
691             my $lvalue = Venus::Scalar->new;
692             my $rvalue = Venus::Hash->new;
693              
694             my $result = $lvalue->gele($rvalue);
695              
696             # 0
697              
698             =back
699              
700             =over 4
701              
702             =item gele example 5
703              
704             package main;
705              
706             use Venus::Number;
707             use Venus::Scalar;
708              
709             my $lvalue = Venus::Scalar->new;
710             my $rvalue = Venus::Number->new;
711              
712             my $result = $lvalue->gele($rvalue);
713              
714             # 0
715              
716             =back
717              
718             =over 4
719              
720             =item gele example 6
721              
722             package main;
723              
724             use Venus::Regexp;
725             use Venus::Scalar;
726              
727             my $lvalue = Venus::Scalar->new;
728             my $rvalue = Venus::Regexp->new;
729              
730             my $result = $lvalue->gele($rvalue);
731              
732             # 0
733              
734             =back
735              
736             =over 4
737              
738             =item gele example 7
739              
740             package main;
741              
742             use Venus::Scalar;
743              
744             my $lvalue = Venus::Scalar->new;
745             my $rvalue = Venus::Scalar->new;
746              
747             my $result = $lvalue->gele($rvalue);
748              
749             # 0
750              
751             =back
752              
753             =over 4
754              
755             =item gele example 8
756              
757             package main;
758              
759             use Venus::Scalar;
760             use Venus::String;
761              
762             my $lvalue = Venus::Scalar->new;
763             my $rvalue = Venus::String->new;
764              
765             my $result = $lvalue->gele($rvalue);
766              
767             # 0
768              
769             =back
770              
771             =over 4
772              
773             =item gele example 9
774              
775             package main;
776              
777             use Venus::Scalar;
778             use Venus::Undef;
779              
780             my $lvalue = Venus::Scalar->new;
781             my $rvalue = Venus::Undef->new;
782              
783             my $result = $lvalue->gele($rvalue);
784              
785             # 0
786              
787             =back
788              
789             =cut
790              
791             =head2 gt
792              
793             gt(Any $arg) (Bool)
794              
795             The gt method performs a I<"greater-than"> operation using the argument provided.
796              
797             I>
798              
799             =over 4
800              
801             =item gt example 1
802              
803             package main;
804              
805             use Venus::Array;
806             use Venus::Scalar;
807              
808             my $lvalue = Venus::Scalar->new;
809             my $rvalue = Venus::Array->new;
810              
811             my $result = $lvalue->gt($rvalue);
812              
813             # 0
814              
815             =back
816              
817             =over 4
818              
819             =item gt example 2
820              
821             package main;
822              
823             use Venus::Code;
824             use Venus::Scalar;
825              
826             my $lvalue = Venus::Scalar->new;
827             my $rvalue = Venus::Code->new;
828              
829             my $result = $lvalue->gt($rvalue);
830              
831             # 0
832              
833             =back
834              
835             =over 4
836              
837             =item gt example 3
838              
839             package main;
840              
841             use Venus::Float;
842             use Venus::Scalar;
843              
844             my $lvalue = Venus::Scalar->new;
845             my $rvalue = Venus::Float->new;
846              
847             my $result = $lvalue->gt($rvalue);
848              
849             # 1
850              
851             =back
852              
853             =over 4
854              
855             =item gt example 4
856              
857             package main;
858              
859             use Venus::Hash;
860             use Venus::Scalar;
861              
862             my $lvalue = Venus::Scalar->new;
863             my $rvalue = Venus::Hash->new;
864              
865             my $result = $lvalue->gt($rvalue);
866              
867             # 0
868              
869             =back
870              
871             =over 4
872              
873             =item gt example 5
874              
875             package main;
876              
877             use Venus::Number;
878             use Venus::Scalar;
879              
880             my $lvalue = Venus::Scalar->new;
881             my $rvalue = Venus::Number->new;
882              
883             my $result = $lvalue->gt($rvalue);
884              
885             # 1
886              
887             =back
888              
889             =over 4
890              
891             =item gt example 6
892              
893             package main;
894              
895             use Venus::Regexp;
896             use Venus::Scalar;
897              
898             my $lvalue = Venus::Scalar->new;
899             my $rvalue = Venus::Regexp->new;
900              
901             my $result = $lvalue->gt($rvalue);
902              
903             # 0
904              
905             =back
906              
907             =over 4
908              
909             =item gt example 7
910              
911             package main;
912              
913             use Venus::Scalar;
914              
915             my $lvalue = Venus::Scalar->new;
916             my $rvalue = Venus::Scalar->new;
917              
918             my $result = $lvalue->gt($rvalue);
919              
920             # 0
921              
922             =back
923              
924             =over 4
925              
926             =item gt example 8
927              
928             package main;
929              
930             use Venus::Scalar;
931             use Venus::String;
932              
933             my $lvalue = Venus::Scalar->new;
934             my $rvalue = Venus::String->new;
935              
936             my $result = $lvalue->gt($rvalue);
937              
938             # 1
939              
940             =back
941              
942             =over 4
943              
944             =item gt example 9
945              
946             package main;
947              
948             use Venus::Scalar;
949             use Venus::Undef;
950              
951             my $lvalue = Venus::Scalar->new;
952             my $rvalue = Venus::Undef->new;
953              
954             my $result = $lvalue->gt($rvalue);
955              
956             # 1
957              
958             =back
959              
960             =cut
961              
962             =head2 gtlt
963              
964             gtlt(Any $arg1, Any $arg2) (Bool)
965              
966             The gtlt method performs a I<"greater-than"> operation on the 1st argument, and
967             I<"lesser-than"> operation on the 2nd argument.
968              
969             I>
970              
971             =over 4
972              
973             =item gtlt example 1
974              
975             package main;
976              
977             use Venus::Array;
978             use Venus::Scalar;
979              
980             my $lvalue = Venus::Scalar->new;
981             my $rvalue = Venus::Array->new;
982              
983             my $result = $lvalue->gtlt($rvalue);
984              
985             # 0
986              
987             =back
988              
989             =over 4
990              
991             =item gtlt example 2
992              
993             package main;
994              
995             use Venus::Code;
996             use Venus::Scalar;
997              
998             my $lvalue = Venus::Scalar->new;
999             my $rvalue = Venus::Code->new;
1000              
1001             my $result = $lvalue->gtlt($rvalue);
1002              
1003             # 0
1004              
1005             =back
1006              
1007             =over 4
1008              
1009             =item gtlt example 3
1010              
1011             package main;
1012              
1013             use Venus::Float;
1014             use Venus::Scalar;
1015              
1016             my $lvalue = Venus::Scalar->new;
1017             my $rvalue = Venus::Float->new;
1018              
1019             my $result = $lvalue->gtlt($rvalue);
1020              
1021             # 0
1022              
1023             =back
1024              
1025             =over 4
1026              
1027             =item gtlt example 4
1028              
1029             package main;
1030              
1031             use Venus::Hash;
1032             use Venus::Scalar;
1033              
1034             my $lvalue = Venus::Scalar->new;
1035             my $rvalue = Venus::Hash->new;
1036              
1037             my $result = $lvalue->gtlt($rvalue);
1038              
1039             # 0
1040              
1041             =back
1042              
1043             =over 4
1044              
1045             =item gtlt example 5
1046              
1047             package main;
1048              
1049             use Venus::Number;
1050             use Venus::Scalar;
1051              
1052             my $lvalue = Venus::Scalar->new;
1053             my $rvalue = Venus::Number->new;
1054              
1055             my $result = $lvalue->gtlt($rvalue);
1056              
1057             # 0
1058              
1059             =back
1060              
1061             =over 4
1062              
1063             =item gtlt example 6
1064              
1065             package main;
1066              
1067             use Venus::Regexp;
1068             use Venus::Scalar;
1069              
1070             my $lvalue = Venus::Scalar->new;
1071             my $rvalue = Venus::Regexp->new;
1072              
1073             my $result = $lvalue->gtlt($rvalue);
1074              
1075             # 0
1076              
1077             =back
1078              
1079             =over 4
1080              
1081             =item gtlt example 7
1082              
1083             package main;
1084              
1085             use Venus::Scalar;
1086              
1087             my $lvalue = Venus::Scalar->new;
1088             my $rvalue = Venus::Scalar->new;
1089              
1090             my $result = $lvalue->gtlt($rvalue);
1091              
1092             # 0
1093              
1094             =back
1095              
1096             =over 4
1097              
1098             =item gtlt example 8
1099              
1100             package main;
1101              
1102             use Venus::Scalar;
1103             use Venus::String;
1104              
1105             my $lvalue = Venus::Scalar->new;
1106             my $rvalue = Venus::String->new;
1107              
1108             my $result = $lvalue->gtlt($rvalue);
1109              
1110             # 0
1111              
1112             =back
1113              
1114             =over 4
1115              
1116             =item gtlt example 9
1117              
1118             package main;
1119              
1120             use Venus::Scalar;
1121             use Venus::Undef;
1122              
1123             my $lvalue = Venus::Scalar->new;
1124             my $rvalue = Venus::Undef->new;
1125              
1126             my $result = $lvalue->gtlt($rvalue);
1127              
1128             # 0
1129              
1130             =back
1131              
1132             =cut
1133              
1134             =head2 le
1135              
1136             le(Any $arg) (Bool)
1137              
1138             The le method performs a I<"lesser-than-or-equal-to"> operation using the
1139             argument provided.
1140              
1141             I>
1142              
1143             =over 4
1144              
1145             =item le example 1
1146              
1147             package main;
1148              
1149             use Venus::Array;
1150             use Venus::Scalar;
1151              
1152             my $lvalue = Venus::Scalar->new;
1153             my $rvalue = Venus::Array->new;
1154              
1155             my $result = $lvalue->le($rvalue);
1156              
1157             # 0
1158              
1159             =back
1160              
1161             =over 4
1162              
1163             =item le example 2
1164              
1165             package main;
1166              
1167             use Venus::Code;
1168             use Venus::Scalar;
1169              
1170             my $lvalue = Venus::Scalar->new;
1171             my $rvalue = Venus::Code->new;
1172              
1173             my $result = $lvalue->le($rvalue);
1174              
1175             # 1
1176              
1177             =back
1178              
1179             =over 4
1180              
1181             =item le example 3
1182              
1183             package main;
1184              
1185             use Venus::Float;
1186             use Venus::Scalar;
1187              
1188             my $lvalue = Venus::Scalar->new;
1189             my $rvalue = Venus::Float->new;
1190              
1191             my $result = $lvalue->le($rvalue);
1192              
1193             # 0
1194              
1195             =back
1196              
1197             =over 4
1198              
1199             =item le example 4
1200              
1201             package main;
1202              
1203             use Venus::Hash;
1204             use Venus::Scalar;
1205              
1206             my $lvalue = Venus::Scalar->new;
1207             my $rvalue = Venus::Hash->new;
1208              
1209             my $result = $lvalue->le($rvalue);
1210              
1211             # 0
1212              
1213             =back
1214              
1215             =over 4
1216              
1217             =item le example 5
1218              
1219             package main;
1220              
1221             use Venus::Number;
1222             use Venus::Scalar;
1223              
1224             my $lvalue = Venus::Scalar->new;
1225             my $rvalue = Venus::Number->new;
1226              
1227             my $result = $lvalue->le($rvalue);
1228              
1229             # 0
1230              
1231             =back
1232              
1233             =over 4
1234              
1235             =item le example 6
1236              
1237             package main;
1238              
1239             use Venus::Regexp;
1240             use Venus::Scalar;
1241              
1242             my $lvalue = Venus::Scalar->new;
1243             my $rvalue = Venus::Regexp->new;
1244              
1245             my $result = $lvalue->le($rvalue);
1246              
1247             # 1
1248              
1249             =back
1250              
1251             =over 4
1252              
1253             =item le example 7
1254              
1255             package main;
1256              
1257             use Venus::Scalar;
1258              
1259             my $lvalue = Venus::Scalar->new;
1260             my $rvalue = Venus::Scalar->new;
1261              
1262             my $result = $lvalue->le($rvalue);
1263              
1264             # 1
1265              
1266             =back
1267              
1268             =over 4
1269              
1270             =item le example 8
1271              
1272             package main;
1273              
1274             use Venus::Scalar;
1275             use Venus::String;
1276              
1277             my $lvalue = Venus::Scalar->new;
1278             my $rvalue = Venus::String->new;
1279              
1280             my $result = $lvalue->le($rvalue);
1281              
1282             # 0
1283              
1284             =back
1285              
1286             =over 4
1287              
1288             =item le example 9
1289              
1290             package main;
1291              
1292             use Venus::Scalar;
1293             use Venus::Undef;
1294              
1295             my $lvalue = Venus::Scalar->new;
1296             my $rvalue = Venus::Undef->new;
1297              
1298             my $result = $lvalue->le($rvalue);
1299              
1300             # 0
1301              
1302             =back
1303              
1304             =cut
1305              
1306             =head2 lt
1307              
1308             lt(Any $arg) (Bool)
1309              
1310             The lt method performs a I<"lesser-than"> operation using the argument provided.
1311              
1312             I>
1313              
1314             =over 4
1315              
1316             =item lt example 1
1317              
1318             package main;
1319              
1320             use Venus::Array;
1321             use Venus::Scalar;
1322              
1323             my $lvalue = Venus::Scalar->new;
1324             my $rvalue = Venus::Array->new;
1325              
1326             my $result = $lvalue->lt($rvalue);
1327              
1328             # 0
1329              
1330             =back
1331              
1332             =over 4
1333              
1334             =item lt example 2
1335              
1336             package main;
1337              
1338             use Venus::Code;
1339             use Venus::Scalar;
1340              
1341             my $lvalue = Venus::Scalar->new;
1342             my $rvalue = Venus::Code->new;
1343              
1344             my $result = $lvalue->lt($rvalue);
1345              
1346             # 1
1347              
1348             =back
1349              
1350             =over 4
1351              
1352             =item lt example 3
1353              
1354             package main;
1355              
1356             use Venus::Float;
1357             use Venus::Scalar;
1358              
1359             my $lvalue = Venus::Scalar->new;
1360             my $rvalue = Venus::Float->new;
1361              
1362             my $result = $lvalue->lt($rvalue);
1363              
1364             # 0
1365              
1366             =back
1367              
1368             =over 4
1369              
1370             =item lt example 4
1371              
1372             package main;
1373              
1374             use Venus::Hash;
1375             use Venus::Scalar;
1376              
1377             my $lvalue = Venus::Scalar->new;
1378             my $rvalue = Venus::Hash->new;
1379              
1380             my $result = $lvalue->lt($rvalue);
1381              
1382             # 0
1383              
1384             =back
1385              
1386             =over 4
1387              
1388             =item lt example 5
1389              
1390             package main;
1391              
1392             use Venus::Number;
1393             use Venus::Scalar;
1394              
1395             my $lvalue = Venus::Scalar->new;
1396             my $rvalue = Venus::Number->new;
1397              
1398             my $result = $lvalue->lt($rvalue);
1399              
1400             # 0
1401              
1402             =back
1403              
1404             =over 4
1405              
1406             =item lt example 6
1407              
1408             package main;
1409              
1410             use Venus::Regexp;
1411             use Venus::Scalar;
1412              
1413             my $lvalue = Venus::Scalar->new;
1414             my $rvalue = Venus::Regexp->new;
1415              
1416             my $result = $lvalue->lt($rvalue);
1417              
1418             # 1
1419              
1420             =back
1421              
1422             =over 4
1423              
1424             =item lt example 7
1425              
1426             package main;
1427              
1428             use Venus::Scalar;
1429              
1430             my $lvalue = Venus::Scalar->new;
1431             my $rvalue = Venus::Scalar->new;
1432              
1433             my $result = $lvalue->lt($rvalue);
1434              
1435             # 0
1436              
1437             =back
1438              
1439             =over 4
1440              
1441             =item lt example 8
1442              
1443             package main;
1444              
1445             use Venus::Scalar;
1446             use Venus::String;
1447              
1448             my $lvalue = Venus::Scalar->new;
1449             my $rvalue = Venus::String->new;
1450              
1451             my $result = $lvalue->lt($rvalue);
1452              
1453             # 0
1454              
1455             =back
1456              
1457             =over 4
1458              
1459             =item lt example 9
1460              
1461             package main;
1462              
1463             use Venus::Scalar;
1464             use Venus::Undef;
1465              
1466             my $lvalue = Venus::Scalar->new;
1467             my $rvalue = Venus::Undef->new;
1468              
1469             my $result = $lvalue->lt($rvalue);
1470              
1471             # 0
1472              
1473             =back
1474              
1475             =cut
1476              
1477             =head2 ne
1478              
1479             ne(Any $arg) (Bool)
1480              
1481             The ne method performs a I<"not-equal-to"> operation using the argument provided.
1482              
1483             I>
1484              
1485             =over 4
1486              
1487             =item ne example 1
1488              
1489             package main;
1490              
1491             use Venus::Array;
1492             use Venus::Scalar;
1493              
1494             my $lvalue = Venus::Scalar->new;
1495             my $rvalue = Venus::Array->new;
1496              
1497             my $result = $lvalue->ne($rvalue);
1498              
1499             # 1
1500              
1501             =back
1502              
1503             =over 4
1504              
1505             =item ne example 2
1506              
1507             package main;
1508              
1509             use Venus::Code;
1510             use Venus::Scalar;
1511              
1512             my $lvalue = Venus::Scalar->new;
1513             my $rvalue = Venus::Code->new;
1514              
1515             my $result = $lvalue->ne($rvalue);
1516              
1517             # 1
1518              
1519             =back
1520              
1521             =over 4
1522              
1523             =item ne example 3
1524              
1525             package main;
1526              
1527             use Venus::Float;
1528             use Venus::Scalar;
1529              
1530             my $lvalue = Venus::Scalar->new;
1531             my $rvalue = Venus::Float->new;
1532              
1533             my $result = $lvalue->ne($rvalue);
1534              
1535             # 1
1536              
1537             =back
1538              
1539             =over 4
1540              
1541             =item ne example 4
1542              
1543             package main;
1544              
1545             use Venus::Hash;
1546             use Venus::Scalar;
1547              
1548             my $lvalue = Venus::Scalar->new;
1549             my $rvalue = Venus::Hash->new;
1550              
1551             my $result = $lvalue->ne($rvalue);
1552              
1553             # 1
1554              
1555             =back
1556              
1557             =over 4
1558              
1559             =item ne example 5
1560              
1561             package main;
1562              
1563             use Venus::Number;
1564             use Venus::Scalar;
1565              
1566             my $lvalue = Venus::Scalar->new;
1567             my $rvalue = Venus::Number->new;
1568              
1569             my $result = $lvalue->ne($rvalue);
1570              
1571             # 1
1572              
1573             =back
1574              
1575             =over 4
1576              
1577             =item ne example 6
1578              
1579             package main;
1580              
1581             use Venus::Regexp;
1582             use Venus::Scalar;
1583              
1584             my $lvalue = Venus::Scalar->new;
1585             my $rvalue = Venus::Regexp->new;
1586              
1587             my $result = $lvalue->ne($rvalue);
1588              
1589             # 1
1590              
1591             =back
1592              
1593             =over 4
1594              
1595             =item ne example 7
1596              
1597             package main;
1598              
1599             use Venus::Scalar;
1600              
1601             my $lvalue = Venus::Scalar->new;
1602             my $rvalue = Venus::Scalar->new;
1603              
1604             my $result = $lvalue->ne($rvalue);
1605              
1606             # 0
1607              
1608             =back
1609              
1610             =over 4
1611              
1612             =item ne example 8
1613              
1614             package main;
1615              
1616             use Venus::Scalar;
1617             use Venus::String;
1618              
1619             my $lvalue = Venus::Scalar->new;
1620             my $rvalue = Venus::String->new;
1621              
1622             my $result = $lvalue->ne($rvalue);
1623              
1624             # 1
1625              
1626             =back
1627              
1628             =over 4
1629              
1630             =item ne example 9
1631              
1632             package main;
1633              
1634             use Venus::Scalar;
1635             use Venus::Undef;
1636              
1637             my $lvalue = Venus::Scalar->new;
1638             my $rvalue = Venus::Undef->new;
1639              
1640             my $result = $lvalue->ne($rvalue);
1641              
1642             # 1
1643              
1644             =back
1645              
1646             =cut
1647              
1648             =head2 tv
1649              
1650             tv(Any $arg) (Bool)
1651              
1652             The tv method performs a I<"type-and-value-equal-to"> operation using argument
1653             provided.
1654              
1655             I>
1656              
1657             =over 4
1658              
1659             =item tv example 1
1660              
1661             package main;
1662              
1663             use Venus::Array;
1664             use Venus::Scalar;
1665              
1666             my $lvalue = Venus::Scalar->new;
1667             my $rvalue = Venus::Array->new;
1668              
1669             my $result = $lvalue->tv($rvalue);
1670              
1671             # 0
1672              
1673             =back
1674              
1675             =over 4
1676              
1677             =item tv example 2
1678              
1679             package main;
1680              
1681             use Venus::Code;
1682             use Venus::Scalar;
1683              
1684             my $lvalue = Venus::Scalar->new;
1685             my $rvalue = Venus::Code->new;
1686              
1687             my $result = $lvalue->tv($rvalue);
1688              
1689             # 0
1690              
1691             =back
1692              
1693             =over 4
1694              
1695             =item tv example 3
1696              
1697             package main;
1698              
1699             use Venus::Float;
1700             use Venus::Scalar;
1701              
1702             my $lvalue = Venus::Scalar->new;
1703             my $rvalue = Venus::Float->new;
1704              
1705             my $result = $lvalue->tv($rvalue);
1706              
1707             # 0
1708              
1709             =back
1710              
1711             =over 4
1712              
1713             =item tv example 4
1714              
1715             package main;
1716              
1717             use Venus::Hash;
1718             use Venus::Scalar;
1719              
1720             my $lvalue = Venus::Scalar->new;
1721             my $rvalue = Venus::Hash->new;
1722              
1723             my $result = $lvalue->tv($rvalue);
1724              
1725             # 0
1726              
1727             =back
1728              
1729             =over 4
1730              
1731             =item tv example 5
1732              
1733             package main;
1734              
1735             use Venus::Number;
1736             use Venus::Scalar;
1737              
1738             my $lvalue = Venus::Scalar->new;
1739             my $rvalue = Venus::Number->new;
1740              
1741             my $result = $lvalue->tv($rvalue);
1742              
1743             # 0
1744              
1745             =back
1746              
1747             =over 4
1748              
1749             =item tv example 6
1750              
1751             package main;
1752              
1753             use Venus::Regexp;
1754             use Venus::Scalar;
1755              
1756             my $lvalue = Venus::Scalar->new;
1757             my $rvalue = Venus::Regexp->new;
1758              
1759             my $result = $lvalue->tv($rvalue);
1760              
1761             # 0
1762              
1763             =back
1764              
1765             =over 4
1766              
1767             =item tv example 7
1768              
1769             package main;
1770              
1771             use Venus::Scalar;
1772              
1773             my $lvalue = Venus::Scalar->new;
1774             my $rvalue = Venus::Scalar->new;
1775              
1776             my $result = $lvalue->tv($rvalue);
1777              
1778             # 1
1779              
1780             =back
1781              
1782             =over 4
1783              
1784             =item tv example 8
1785              
1786             package main;
1787              
1788             use Venus::Scalar;
1789             use Venus::String;
1790              
1791             my $lvalue = Venus::Scalar->new;
1792             my $rvalue = Venus::String->new;
1793              
1794             my $result = $lvalue->tv($rvalue);
1795              
1796             # 0
1797              
1798             =back
1799              
1800             =over 4
1801              
1802             =item tv example 9
1803              
1804             package main;
1805              
1806             use Venus::Scalar;
1807             use Venus::Undef;
1808              
1809             my $lvalue = Venus::Scalar->new;
1810             my $rvalue = Venus::Undef->new;
1811              
1812             my $result = $lvalue->tv($rvalue);
1813              
1814             # 0
1815              
1816             =back
1817              
1818             =cut
1819              
1820             =head1 OPERATORS
1821              
1822             This package overloads the following operators:
1823              
1824             =cut
1825              
1826             =over 4
1827              
1828             =item operation: C<(${})>
1829              
1830             This package overloads the C<${}> operator.
1831              
1832             B
1833              
1834             package main;
1835              
1836             use Venus::Scalar;
1837              
1838             my $scalar = Venus::Scalar->new(\*STDOUT);
1839              
1840             my $value = $$scalar;
1841              
1842             # *::STDOUT
1843              
1844             =back
1845              
1846             =over 4
1847              
1848             =item operation: C<(*{})>
1849              
1850             This package overloads the C<*{}> operator.
1851              
1852             B
1853              
1854             package main;
1855              
1856             use Venus::Scalar;
1857              
1858             my $scalar = Venus::Scalar->new(\*STDOUT);
1859              
1860             my $value = *$scalar;
1861              
1862             # *::STDOUT
1863              
1864             =back
1865              
1866             =head1 AUTHORS
1867              
1868             Awncorp, C
1869              
1870             =cut
1871              
1872             =head1 LICENSE
1873              
1874             Copyright (C) 2000, Al Newkirk.
1875              
1876             This program is free software, you can redistribute it and/or modify it under
1877             the terms of the Apache license version 2.0.
1878              
1879             =cut