CPANのモジュールを探す方法

このQ&Aのポイント
  • CPANの膨大なモジュールから必要なモジュールを探す方法について説明します。
  • 連想配列の足し算について調べていますが、現時点では膨大なモジュールを探すことに挫折しています。
  • CPANを使いこなすためには、各モジュールの説明を一つ一つ読みながら探す必要がありますが、時間がかかるため自分でコードを書く方が早い場合もあります。
回答を見る
  • ベストアンサー

CPANの膨大なモジュールから必要なモジュールを探す方法

連想配列の足し算は出来ないものでしょうか。 例えば  %x=('a'=>1,    'b'=>2);  %y=('b'=>3,    'c=>4);    %z=%x+%y; で  %z=('a'=>1,    'b'=>5,    'c'=>4); とか  %z=%x.%y; で  %z=('a'=>1,    'b'=>23,    'c'=>4); となれば便利だと思うのですが。 今回はこれでCPANを跳梁してみたのですが、挫折してしまいました。CPANを眺めていても時間が経つばかり・・・意地になって探すより、サッサと自分でコードを書いた方が遥かに早いですね。 こういう時、CPANを使いこなしている方はどのようにされているのでしょう。時々、こんなの自分でコードを書かなくても、絶対にCPANにあるよなと思うことがあるのですが、ズラ~ッと羅列されている各モジュールの説明に一つ一つ目を通して行くと、間違いなく普通の人は挫折すると思うんです。

  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

部分的な回答ですが。 '+' を使ってというのはちょっと面倒ですが、二つのハッシュ(連想配列)の 内容をひとつにまとめたいということであれば、 %z = (%x, %y); と書けばできます(ただし、ハッシュの要素がまたハッシュだったりするとだめですが)。 Perlでは連想配列のことを通常「ハッシュ」と呼ぶことがわかっていれば、 CPANでHashをキーワードに検索すれば見つけやすくなると思います。 そして、二つ(またはそれ以上)のハッシュの「足し算」は マージ(merge) と表現しますので、この二つを使えばすぐに見つけられるでしょう。 http://www.google.co.jp/search?hl=ja&q=perl+hash+merge&btnG=%E6%A4%9C%E7%B4%A2&lr= ところで > 今回はこれでCPANを跳梁してみたのですが、 跳梁はあまりいい意味では使いませんよ(「跳梁跋扈」とか)。

makoji
質問者

お礼

mergeですか、勉強になりました。 ありがとうございます。

関連するQ&A

  • 2つの平面のなす角を鋭角で求める方法

    2つの平面 a1x+b1y+c1z=0 a2x+b2y+c2z=0 の2つの平面のなす角を鋭角でもとめよ。 教えてください。よろしくお願いします。

  • 不等式の等号成立の問題です

    質問させていただきます 問.a≧b≧c、x≧y≧zのとき(a+b+c)(x+y+z)≦3(ax+by+cz) この問についてとき方は習ったとき二つあって、両方ともほぼわかったのですが、片方のとき方で等号成立の条件についてわからないところ有ります。 その解き方(一部省略しています)では、単純に右辺から左辺を引いて (a-b)(x-y)+(b-c)(y-z)+(a-c)(x-z)≧0 として、等号成立の条件として a-b=0またはx-y=0かつb-c=0またはy-z=0かつa-c=0またはx-y=0 ここまではわかったのですが、このあとにこれをまとめて a=b=cまたはx=y=z としていました。この最後のa=b=cまたはx=y=zへ、どうやったらこのようにまとめられるのかがわかりません。自分の考えでは、このようにまとめてしまうと等号の成立がa=b=cとx=y=zの二つしかなく、本来a-b=0かつy-z=0かつx-y=0やx-y=0かつb-c=0かつa-c=0のようにたくさんあるものを減らしているように思います。 お願いします。

  • 構造体の要素すべてに対する四則演算の方法を教えてください.

    構造体の要素すべてに対する四則演算の方法を教えてください. たとえば、 2点a,bの座標成分x,y,zをそれぞれの座標ごとに足す方法を教えてください. 下のようにx,y,z成分を持ったa,bがあります。 struct point{ int x; int y; int z; }; struct point a; struct point b; struct point c; この場合, c=a+b; と書くことができず, それぞれの成分ごとに以下のように足さなくてはなりません. c.x=a.x+b.x; c.y=a.y+b.y; c.z=a.z+b.z; この方法でできるのですが, 非常に効率的でないのでなにかもっと簡単に記述する方法を教えてください. お願いいたします.

  • 数学(ベクトル)の問題

    http://okwave.jp/qa/q8022847.html のNO.7の回答より、 さらに途中式を書いたのですが、 L^2 = m(t-n(s))^2-(a1^2+b1^2+c1^2 ) {(c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s)/(a1^2+b1^2+c1^2 )}^2+(a2^2+b2^2+c2^2 ){(s^2 )+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}/{(a2^2+b2^2+c2^2 )} }+{(x2-x1)^2 }+{(y2-y1)^2 }+{(z2-z1)^2 } n(s)={c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}/(a1^2+b1^2+c1^2 ) = m(t-n(s))^2-{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}^2/(a1^2+b1^2+c1^2 )+(a2^2+b2^2+c2^2 ){(s^2 )+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}/{(a2^2+b2^2+c2^2 )} }+{(x2-x1)^2 }+{(y2-y1)^2 }+{(z2-z1)^2 } = m(t-n(s))^2-{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}^2/(a1^2+b1^2+c1^2 )+(a2^2+b2^2+c2^2 )(s^2 )+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}+{(x2-x1)^2 }+{(y2-y1)^2 }+{(z2-z1)^2 } ところで {c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}^2 = {c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}^2 +2{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}(a1a2+b1b2+c1c2)s +{(a1a2+b1b2+c1c2)s}^2 = {c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}^2 +2{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}(a1a2+b1b2+c1c2)s +(a1a2+b1b2+c1c2)^2 (*s)^2 これより、 L^2= m(t-n(s))^2+s^2 {(a2^2+b2^2+c2^2 )-(a1a2+b1b2+c1c2)^2/(a1^2+b1^2+c1^2 )} +s[2{(c2(z2-z1)+b2(y2-y1)+a2(x2-x1))-{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}(a1a2+b1b2+c1c2)s/(a1^2+b1^2+c1^2 )}] +{(x2-x1)^2 }+{(y2-y1)^2 }+{(z2-z1)^2 }-{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}^2/(a1^2+b1^2+c1^2 ) 簡単、 L^2 =m(t-n(s))^2+ps^2+p1s+p2 =m(t-n(s))^2+p(s^2+p1s/p)+p2 =m(t-n(s))^2+p(s^2+p1s/p+(p1/p)^2-(p1/p)^2 )+p2 =m(t-n(s))^2+p(s^2+p1s/p+(p1/p)^2 )-(p1)^2/p+p2 まで、計算したのですが(間違っていたら申し訳ありません)、 ここから、どのように q=-p1/2p が導出できるのかがわからないです。 (rは導出できました。) 数式だらけで分かりづらいと思いますが、計算ミスを指摘しつつ、導出過程も分かりやすくお願いします。

  • 片方だけ抽出する方法(SQL)

    下記のようなテーブルがあるとします。 Aテーブル コード 値 X 10 Y 20 Z 30 Bテーブル コード 値 Y 20 Y 30 Z 30 A.コード=B.コードとA.値=B.値という条件に一致しないデータのうち、 Aテーブルのデータのみ取り出したいです。 この場合だと、「X 10」のみ結果として欲しいです。 どのようなSQLを作成すればいいか、分かりません。 考え方の問題なのかもしれませんが、ぜひ教えてください。

  • 式と証明の問題です

    質問させていただきます。 y+z/a=z+x/b=x+y/cのとき、等式(b-c)x+(c-a)y+(a-b)zが成り立つことを証明せよ。 y+z/a=z+x/b=x+y/cのようなものがある問は、=kなどとおいて代入するというものがよくあったのですがうまくいきませんでした。 どうか宜しくお願いします!

  • これって接平面の方程式じゃ?

    今日こんな問題を解きました。 次の曲面の点(a,b,c)における接平面の方程式を求めよ。 (1)xy+yz+zx+1=0 (2)xyz=1 私の解答は (1)z(x+y)=-(1+xy) z=-(1+xy)/x+yとおいて このzに対してのそれぞれの偏微分fx(x,y),fy(x,y)を求めて、接平面の方程式であるz-c=fx(a,b)(x-a)+fy(a,b)(y-b)に代入して答えを得ました。 (2)z=1/xyといて (1)と同様にこのzに対してのfx(x,y),fy(x,y)を求め z-c=fx(a,b)(x-a)+fy(a,b)(y-b)に代入して答えを得ました。その解は両方ともa,b,c,x,y,zと文字が全部含まれていたのですが、いざ答え合わせをしてみると (1)はφ=xy+yz+zx-1 gradφ(A)(X-Xo)=(y+z,x+z,y+x)_X-A・(X-A) =(b+c,a+c,b+a)・(x-a,y-b,z-c)=0より (b+c)x+(c+a)y+(a+b)z=a(b+c)+b(a+c)+c(b+a)=z {A=(a,b,c) X=(x,y,z)}とおいた。 (2)はφ=xyz-1 gradφ(A)(X-A)=(bc,ca,ab)(x-a,y-b,z-c)=0より bcx+cay+abz=3abc=3 となっていました。二つとも私の導いた答えと全く異なっており、混乱しています。私の解答であっているのかそれとも全く違うのか、違うのならなぜ接平面の方程式じゃ解けないのか等教えてください。。。

  • 文字が有理数で基本対称式が整数なら元の文字は整数か

    x∈Q、y∈Q、x+y∈Z、xy∈Z ⇔ x∈Z、y∈Z (⇐の証明)Z⊂Qより。 (⇒の証明)a=x+y∈Z、b=xy∈Zとおく。 x、yはt^2-at+b=0の解 x、y={a±√(a^2-4b)}/2 x、y∈Qなので、√(a^2-4b)∈Q (a^2-4b)は平方数で、(a^2-4b)=c^2(ただしc>0)とおくと、 x=(a+c)/2、y=(a-c)/2 ここで、xy=(a^2-c^2)/4∈Zなので、 a、cはともに偶数かともに奇数。 よって、x=(a+c)/2∈Z、y=(a-c)/2∈Z ところで、 x∈Q、y∈Q、z∈Q、x+y+z∈Z、xy+yz+zx∈Z、xyz∈Z ⇔ x∈Z、y∈Z、z∈Z は成り立つのでしょうか? 反例、または証明を教えていただきたいです。 証明は、できれば、3次に限らずに一般に成り立つような方法を教えていただきたいです。

  • 複数あります。

    (1)a≦b≦c、x≦y≦z のとき、  (a+b+c)(x+y+z)+ax+by+cz=(a+b)(x+y)+(b+c)(y+z)+(c+a)(z+x)  2(ax+by)≧(a+b)(x+y)  の二つの式が証明されています。  3(ax+by+cz)≧(a+b+c)(x+y+z) を証明せよ。 (2)(a^2+b^2)(x^2+y^2)≧(ax+by)^2 が証明されています。  x^2+y^2=4 のとき,5x+2y の最大値を求めよ。 どなたか回答お願いします。

  • 5次式に関するなんらかの因数分解の公式はあるのでしょうか

    3次式に関して、次のような因数分解があり、例えば、3次方程式の解法に使われます。(ウィキペディアを参照しました) x^3 + y^3 + z^3 - 3 x y z = (x + y + z) (x^2 + y^2 + z^2 - z x - x y - y z) = (x + y + z)(x + ω y + ω^2 z)(x + ω^2 y + ω z) 4次式に関して、次のような因数分解があり、例えば、4次方程式の解法に使われます。 x^4 - 2 (a^2 + b^2 + c^2) x^2 + 8 a b c x + a^4 + b^4 + c^4 - 2 (a^2 b^2 + b^2 c^2 + c^2 a^2) = (x + a + b + c) (x + a - b - c) (x - a + b - c) (x - a - b + c) この延長に5次式に関するなんらかの「美しい」「価値のある」因数分解の公式はあるのでしょうか? 5次方程式には代数的解法が存在しないですが、それとは特に無関係のような気もしますが。

専門家に質問してみよう