Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
579 views
in Technique[技术] by (71.8m points)

perl - Passing a Variable to a script calling itself

My Script is storing a ClearCase View in a Variable. To operate in this View, the Script needs to call itself inside the View again, after it started the View. The Code looks like this

 if($params{ViewSet} eq 'no')
    {
       # Start the View
       # Store the View in $View
       # Call the Script in the new-set View with parameter -ViewSet yes
    }
if($params{ViewSet} eq 'yes')
    {
      # Do Work inside the View
    }

The problem is, obviously the Variable $View is not defined when I call my script the second time, since it is defined in the first if loop.

Can I pass the View I stored in $View when I call the Script the second time? Setting the View before entering the if-Statements would not word, I would start the View two times then.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Call the Script in the new-set View with parameter -ViewSet

If that involve calling cleartool setview, don't: setview spawns a subshell in which what you have defined in your script won't be visible.

When your script needs to access the dynamic view started, do use the full dynamic view path:

/view/myDynView
# under which you would see:
/view/myDynView/vobs/MyVob

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...