When i write the condition
my @m = $fullStruct =~ /$DLstatement/g;
and try printing the array,
            print "\nThe array is @m\n";
It prints nothing.... This is the problem...

Thanks and Regards,
Dharshana
On 8/28/07, Chas Owens <[EMAIL PROTECTED]> wrote:
>
> On 8/28/07, Dharshana Eswaran <[EMAIL PROTECTED]> wrote:
> > Hi All,
> >
> > I have a pattern, which reads as shown below:
> >
> > my $comment    = qr{\s* (?:/\* .*? \*/ \s*)*}xs;
> > my $identifier = qr{ [A-Za-z_]\w* }xs;
> > my $statement  = qr{
> >                    \s*
> >                    ($identifier)
> >                    \s+
> >                    ($identifier)
> >                    \s*
> >                    (?: \[ (.*?) \] )?
> >                    \s*
> >                    ;
> >                    \s*
> >                    $comment?
> >             }xs;
> >
> >             my @m = $abc =~ /$statement/g;
> >
> > My string reads as shown below:
> >
> > $abc = "typedef struct  _MSG_S
> > {
> >     CALL_ID              callId;     /**< call id */
> >     VOICE_STATUS    status;     /**< Call status */
> >     id_t                       id;        /**< The id of process call */
> > } TAPI_VOICE_NOTIFY_CALL_STATUS_MSG_S;";
> >
> >
> > The condition $abc =~ /$statement/g; is not satisfied. The array @m is
> not
> > being filled.
> >
> > I am unable to find out the mistake. Is the pattern regex wrong
> somewhere?
> >
> > Thanks and Regards,
> > Dharshana
> >
>
>
> That is not the behaviour I am seeing.  Please post a full example
> that demonstrates your problem.  The following code prints out:
>
> callId is of type CALL_ID
> status is of type VOICE_STATUS
> id is of type id_t
>
> as expected.
>
> #!/usr/bin/perl
>
> use strict;
> use warnings;
>
>
> my $comment    = qr{\s* (?:/\* .*? \*/ \s*)*}xs;
> my $identifier = qr{ [A-Za-z_]\w* }xs;
> my $statement  = qr{
>                   \s*
>                   ($identifier)
>                   \s+
>                   ($identifier)
>                   \s*
>                   (?: \[ (.*?) \] )?
>                   \s*
>                   ;
>                   \s*
>                   $comment?
>            }xs;
>
> my $abc = "typedef struct  _MSG_S
> {
>    CALL_ID              callId;     /**< call id */
>    VOICE_STATUS    status;     /**< Call status */
>    id_t                       id;        /**< The id of process call */
> } TAPI_VOICE_NOTIFY_CALL_STATUS_MSG_S;";
>
> while ($abc =~ /$statement/g) {
>         my ($type, $name, $size) = ($1, $2, $3);
>         $type = "array of $type with $size elements" if defined $size;
>         print "$name is of type $type\n";
> }
>

Reply via email to